我有两个ViewControllers,它们没有(直接)通过Segue相互关联。但是我想在第二个VC中更改一个在第一个VC中获取的字符串。我的尝试是:
#import "secondViewController.h"
@interface firstViewController ()
@property NSString* originalString;
@end
@implementation firstViewController
-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
secondViewController* svc = [secondViewController new];
svc.anotherString = self.originalString;
}
但它不起作用,因为我只创建了第二个VC的一个实例,所以值没有被保存。另外,我无法使用Storyboard ID,因为我使用Xcode 5。
我有一个menuVC,从中您可以进入firstVC和secondVC。从firstVC可以返回到menu(使用navigationbackbarbutton)。所以:menu->firstVC->menu。menu->secondVC->...->menu
我的尝试使用StoryboardID:
-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
secondViewController* svc =[[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"secondVCSrorybradID"];
svc.anotherString = self.originalString;
}
[UIStoryboard storyboardWithName:]
。由于这是在视图控制器中,您可以使用视图控制器的故事板属性:[self.storyboard instantiateViewControllerWithIdentifier: @"secondVCSrorybradID"]
。而且,你的故事板 ID 确实是secondVCSrorybradID
吗?一个 ID 中有两个拼写错误?它必须完全匹配,逐字逐句,并具有正确的大小写,否则将无法加载视图控制器。 - Duncan C