执行完segue后如何做某事?

时间:2014-08-09 17:22:48

标签: ios objective-c segue

我在故事板中使用segue来呈现模态视图控制器。而不是segue我可以使用presentViewController:animated:completion在完成块中执行某些操作。 但现在我不知道segue什么时候结束,以及我的完成代码放在哪里
以下是我之前使用的代码:

presentViewController:modalViewController animated:YES completion:^{

    modalViewController.items = items;
    [modalViewController showItem:itemdIndex];
}];

我需要从外面调用modalViewController方法。

3 个答案:

答案 0 :(得分:2)

你必须继承UIStoryboardSegue并在其中实现perform方法。之后,在storyboard中,将segue的类设置为刚刚创建的类。

或者您可以将代码放在您正在观看的视图的ViewDidLoadViewWillAppear方法中。

最好以这种方式使用ViewDidLoad,只有在首先加载视图时才会执行一次代码。

答案 1 :(得分:1)

将它们放在viewWillAppear:的视图控制器中,你正在选择它。

注意:如果要将视图控制器添加到堆栈(如UINavigationController内),每次视图控制器被调用时都会调用viewWillAppear:(即使你要来了)从另一个视图控制器回到它)。如果您希望代码只运行一次(最初加载时),请将其放在viewDidLoad中。

答案 2 :(得分:0)

您可以通过编程方式完成:

let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "someViewController")
self.present(controller, animated: true, completion: {
    // put your code that you want to execute after perform segue finished
})