2

使用 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 的方式调用连接控制器的 setID 函数,我该怎么做呢?好像我没有直接获得 Connect 控制器的实例。

4

2 回答 2

1

您应该子类化视图控制器,以便您可以控制用户与其交互时发生的情况(除非您的应用程序可以单独在 segues 上运行。)

在 Xcode 中,文件 -> 新建 -> 文件 -> Cocoa Touch 类。制作一个类似MyAwesomeViewController子类的类(在你的情况下)UINavigationController

NewVC我喜欢在我的自定义视图控制器类中调用一个自定义方法。它可以执行您上面列出的所有操作,以及任何自定义设置:

+(MyAwesomeViewController *)NewVC {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName: @"MyStoryboard" bundle: nil];
    return [storyboard instantiateViewControllerWithIdentifier: @"MyAwesomeViewController"];
}

这样当你想创建一个新的时,你可以调用[MyAwesomeViewController NewVC]它,它会返回一个新的视图控制器实例。

于 2012-07-01T04:49:28.413 回答
0

你为什么将它转换为 UINavigationController?做你正在做的事。

Connect* connect = [secondStoryboard instantiateViewControllerWithIdentifier:@"Connect"];
于 2012-07-01T04:29:34.090 回答