您是不是在同一个 prepareForSegue 方法中为一个视图控制器的所有 segue 实现行为?

Posted

技术标签:

【中文标题】您是不是在同一个 prepareForSegue 方法中为一个视图控制器的所有 segue 实现行为?【英文标题】:Do you implement behaviour for all the segues of one view controller in the same prepareForSegue method?您是否在同一个 prepareForSegue 方法中为一个视图控制器的所有 segue 实现行为? 【发布时间】:2014-04-03 21:55:11 【问题描述】:

我要了解 prepareForSegue 如何在单个视图控制器中处理不同类型的 segue...我的意思是,视图控制器可能会在单个视图中具有不同类型的 segue 并为每个视图实现不同的任务它们在 prepareForSegue 方法中,所以它们都在同一个中吗?

我知道您定义的每个 segue 都会向 prepareForSegue 方法发送一个 segue 对象,但是该方法如何知道要执行哪个代码?

谢谢,

【问题讨论】:

【参考方案1】:

是的,您将在该单个函数中为该视图控制器执行所有逻辑。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    NSLog(@"Prepare for segue: %@", [segue identifier]);
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
    if ([[segue identifier] isEqualToString:@"segue1"]) 
        // logic for segue 1
     else if ([[segue identifier] isEqualToString:@"segue2"]) 
        // logic for segue 2
     else if ([[segue identifier] isEqualToString:@"segue3"]) 
        // logic for segue 3
    

【讨论】:

以上是关于您是不是在同一个 prepareForSegue 方法中为一个视图控制器的所有 segue 实现行为?的主要内容,如果未能解决你的问题,请参考以下文章

使用 UINavigationController 返回时是不是有类似 prepareForSegue 的东西?

TabBarController 是不是有像 prepareForSegue 这样的拦截点?

当 segue 即将执行到另一个视图控制器时,prepareForSegue 是不是会通知视图控制器?

Swift:prepareForSegue 有两个不同的 segue

在prepareForSegue方法中防止segue?

prepareForSegue 传递索引 0 的值...总是