0

我已经提到了Storyboard - 请参阅 AppDelegate 中的 ViewController

我想问一下它是否和我们在故事板中看到的一样。如果我们这样编码:

    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];

从日志中,我可以看到它们不是同一个对象。如何通过代码从情节提要中获取相同的视图控制器 obj?

我在情节提要中创建了两个名为(FirstViewController,SecondController)的视图控制器,并在两者之间添加了一个segue。我尝试使用 performSegueWithIdentifier 转移到第二页。[self performSegueWithIdentifier] 有效,而 [fvc performSegueWithIdentifier] 无效。

4

1 回答 1

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];
于 2012-09-06T18:34:50.617 回答