【发布时间】:2014-03-04 16:51:31
【问题描述】:
我有两个 ViewController,它们不(直接)与 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。从第一个VC 我可以(使用navigationbackbarbutton)返回菜单。所以:菜单->firstVC->菜单。菜单->secondVC->...->菜单
我对 StoryboardID 的尝试:
-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
secondViewController* svc =[[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"secondVCSrorybradID"];
svc.anotherString = self.originalString;
}
【问题讨论】:
-
如何从第一个 VC 到第二个 VC?
-
?为什么你不能使用情节提要 id ???
-
你问为什么更改 svc.anotherString 时 originalString 没有更新?
-
是的,这是我的问题 iani
-
不要使用
[UIStoryboard storyboardWithName:]。由于这是在视图控制器中,您可以使用视图控制器的故事板属性:[self.storyboard instantiateViewControllerWithIdentifier: @"secondVCSrorybradID"]。你的故事板ID真的是secondVCSrorybradID吗?一个ID中有两个拼写错误?它必须完全匹配,一个字母一个字母,并且大小写正确,否则将无法加载视图控制器。
标签: ios objective-c nsstring uistoryboard