如何处理两个赛段去相同的视图控制器?

我有一个iPhone应用程序,目前我正在使用Storyboard在XCode 4.3中构建。 我有一个具有两个(2)seques的“根”视图控制器到包含UIWebView的视图控制器。 我希望能够识别segue(已经为这两个segues设置了唯一标识符),因此我可以将正确的内容“推送”到UIWebView,这是基于在“root”视图控制器中激活了哪个segue。

我想我必须使用“prepareForSegue”方法,但不知道它会去哪里。 我在哪里可以找到如何处理两个赛段到同一个视图控制器? (我已经谷歌,并没有发现适合我的情况)。

以下是我正在使用的代码:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"helpSegue"]) {
        NSLog(@"helpSegue");
    }
    else if ([segue.identifier isEqualToString:@"reportSegue"]) {
        NSLog(@"reportSegue");
    }
}

你不会调用-prepareForSegue:sender:你会在你的视图控制器中实现它。 在它覆盖的方法中,您可以检查segue的identifier属性(segue作为参数传入):

if ([segue.identifier isEqualToString:@"Segue Numero Uno"]) {
    // do something here
}

这可以让你采取某种行动,具体取决于哪个赛格导致转换。 您可以在故事板编辑器中为每个segue设置标识符。

更新:根据您在评论中提供的代码(我已添加到您的问题中),您现在已经有了正确的想法。 在这一点上,这只是一个老式的调试问题。 有些事情要检查:

  • 故事板中的视图控制器(即问题中引入的那个视图控制器)是否设置为实现此-prepareForSegue:sender:的类的实例? 检查故事板中的控制器类型。

  • 您在代码中使用的字符串是否与您在故事板中为您的segues设置的标识符完全匹配? 大写字母,拼写,标点符号和空格都很重要。

  • 你的-prepareForSegue:sender:方法被调用了吗? 在那里放置一个断点并进行调试。 如果它被调用,传入的segue的标识符是什么? 如果未被调用,故事板中的视图控制器没有正确的类。

  • 链接地址: http://www.djcxy.com/p/10519.html

    上一篇: How to handle two segues going to the same view controller?

    下一篇: Chrome: JavaScript window.open to be Save