来自一个视图控制器的两个segue,prepareForSegue

Posted

技术标签:

【中文标题】来自一个视图控制器的两个segue,prepareForSegue【英文标题】:two segues coming from one view controller, prepareForSegue 【发布时间】:2014-07-29 02:28:14 【问题描述】:

有没有办法让不同的 segue 有不同的 prepareForSegue 来自同一个视图控制器?

因为我从一个视图中有 2 个转场,显然有一些解决方法,但我想知道是否可以根据调用的转场将 prepareForSegues 分成 2 个完全独立的方法。

【问题讨论】:

【参考方案1】:

不,您不能使用两种不同的方法。 但是,您可以在如下条件语句中调用两种不同的方法:

您可以检查调用了哪个segue:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.

    if ([segue.identifier isEqualToString:@"addNewCheckListItem"])         
     else if ([segue.identifier isEqualToString:@"showExistingCheckListItem"]) 
    

但请确保您还为它们设置了 Interface Builder 中的标识符

【讨论】:

以上是关于来自一个视图控制器的两个segue,prepareForSegue的主要内容,如果未能解决你的问题,请参考以下文章

来自 CollectionViewCell 的 Swift segue 无法显示新视图

两个不同的按钮对同一个视图控制器执行 segue,但希望通过一个按钮禁用用户交互以进行 segue

两个视图控制器之间的 Segue

iOS - 如何在通过手动 Segue 链接的两个视图控制器之间传递信息?

iOS 和 Swift:可以强制解开 tableView.indexPath?

Swift Prepare(for: segue) 未调用