我可以从故事板和代码中获取相同的viewcontroller对象吗?

时间:2012-09-06 15:09:46

标签: xcode uiviewcontroller storyboard segue uistoryboardsegue

我已经提到了Storyboard - refer to ViewController in AppDelegate

我想问一下它是否与我们在故事板中看到的相同的viewcontroller obj。如果我们编码如下:

    FirstViewController* fvc = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"first"];
    NSLog(@"fvc=%@", fvc);
    [fvc performSegueWithIdentifier:@"go2next" sender:fvc];

我测试时,它与:

不一样
    NSLog(@"self=%@", self);
    [self performSegueWithIdentifier:@"go2next" sender:self];

从日志中,我可以看到它们不是同一个objs。如何通过代码从故事板获取相同的视图控制器obj?

我在storyboard中创建了两个名为(FirstViewController,SecondController)的viewcontroller,并在两者之间添加了一个segue。我尝试使用performSegueWithIdentifier转移到第二页。 [self performSegueWithIdentifier]有效,而[fvc performSegueWithIdentifier]不起作用。

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题。如果我在AppDelegate.m中添加以下行

FirstViewController* fvc = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"first"];
self.window.rootViewController = fvc;
NSLog(@"fvc=%@", fvc);
[fvc performSegueWithIdentifier:@"go2next" sender:fvc];

它的作用与:

相同
NSLog(@"self=%@", self);
[self performSegueWithIdentifier:@"go2next" sender:self];