我在故事板中使用segue来呈现模态视图控制器。而不是segue我可以使用presentViewController:animated:completion在完成块中执行某些操作。但现在我不知道segue什么时候结束,以及我的完成代码放在哪里 以下是我之前使用的代码:
presentViewController:modalViewController animated:YES completion:^{
modalViewController.items = items;
[modalViewController showItem:itemdIndex];
}];
我需要从外部调用modalViewController方法。
你必须继承UIStoryboardSegue
并在其中实现perform方法。之后,在storyboard中,将segue的类设置为刚刚创建的类。
或者您可以将代码放在ViewDidLoad
或ViewWillAppear
方法的视图中。
最好是以这种方式使用ViewDidLoad
,只有在首先加载视图时才会执行一次代码。
把它们放在viewWillAppear:
中的视图控制器中。
注意:如果要将视图控制器添加到堆栈中(例如在UINavigationController
中),每次视图控制器被调用时都会调用viewWillAppear:
(即使您从另一个视图控制器返回它)。如果您希望代码只运行一次(最初加载时),请将其放在viewDidLoad
中。
你可以通过编程方式完成:
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
})