iOS Xcode 4.2使用StoryBoard呈现ViewController

时间:2012-07-01 04:04:08

标签: ios storyboard

使用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控制器的实例。

2 个答案:

答案 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"];