xcode以编程方式展开segue

时间:2013-03-07 13:14:31

标签: ios objective-c xcode

我们如何以编程方式推送xcode unwind segue?

我知道简单的方法是使用故事板并将按钮拉到“退出”,但我打算做的是在退出视图之前先运行一些代码。

3 个答案:

答案 0 :(得分:5)

要返回rootViewController使用:

[self.navigationController popToRootViewControllerAnimated:(BOOL)]

或者去特定的控制器:

[self.navigationController popToViewController:
    [[self.navigationController viewControllers]
    objectAtIndex:THEINDEXOFTHEVIEWCONTROLLERTOUNWINDTO]
    animated:YES];

有关详细信息,请参阅此帖子中的答案: Push to root View controller in UIStoryboard

答案 1 :(得分:4)

如果你只是想在退出之前执行一些代码(虽然保持简单,否则你将获得UI锁定,直到你返回一些东西),你可以覆盖目标控制器上的canPerformUnwindSegueAction:fromViewController:withSender:

或许这样的事情:

- (BOOL)canPerformUnwindSegueAction:(SEL)action 
                 fromViewController:(UIViewController *)fromViewController 
                         withSender:(id)sender
{
    // Some operation...

    return YES; // Or NO if something went wrong and you want to abort
}

否则,您实际上可以通过编程segueForUnwindingToViewController:fromViewController:identifier:以编程方式创建segue并管理动画/展开逻辑。

您可以找到complete documentation here

答案 2 :(得分:1)

通过在UIViewController

中调用此方法,可以在代码中出现segue
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender

您仍然会在两个视图之间的故事板中创建segue,只需确保命名segue并使用标识符参数中的确切名称