使用StoryBoard呈现视图控制器的新方法。
UIStoryboard* secondStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController* secondViewController = [secondStoryboard instantiateViewControllerWithIdentifier:@"Connect"];
[self presentViewController: secondViewController animated:YES completion: NULL];
呈现控制器Connect的旧方法就像这样
Connect *connect = [[[Connect alloc] initWithNibName:@"Connect" bundle:nil] autorelease];
[self presentViewController:connect animated:YES completion:NULL];
NSString *userid;
userid=@"123";
[connect setID:userid];
我想以Storyboard的方式调用connect控制器的setID函数,我该怎么做?好像我没有直接获得Connect控制器的实例。
答案 0 :(得分:1)
您应该对视图控制器进行子类化,以便您可以控制用户与其进行交互时会发生什么(除非您的应用程序可以单独使用segue。)
在Xcode中,文件 - >新 - >档案 - > Cocoa Touch Class。创建类似于MyAwesomeViewController
的类(在您的情况下为UINavigationController
。
我喜欢在自定义视图控制器类中创建一个名为NewVC
的自定义方法。它可以执行您在上面列出的所有内容,以及任何自定义设置:
+(MyAwesomeViewController *)NewVC {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName: @"MyStoryboard" bundle: nil];
return [storyboard instantiateViewControllerWithIdentifier: @"MyAwesomeViewController"];
}
这样,当您想要创建一个新的时,您只需调用[MyAwesomeViewController NewVC]
,它就会返回一个新的视图控制器实例。
答案 1 :(得分:0)
为什么要将其转换为UINavigationController?做你正在做的事。
Connect* connect = [secondStoryboard instantiateViewControllerWithIdentifier:@"Connect"];