bog*_*gen 30 uiviewcontroller ios segue uistoryboardsegue ios6
在iOS 6中是否可以知道何时UIStoryboardSegue完成了转换?就像当我在navigationcontroler上添加一个UIStoryboardSeguefrom UIButton来推送另一个UIViewController时,我希望在推送转换完成后立即执行某些操作.
小智 20
您可以使用UINavigationControllerDelegate协议然后定义:
– navigationController:didShowViewController:animated:
Run Code Online (Sandbox Code Playgroud)
Lev*_*evi 15
如果您不想使用该viewDidAppear:方法,可以创建自定义segue.在该perform方法中,您将使用动画进行转换,并且可以具有完成块.您可以在动画完成后添加代码.
在Swift中,UIViewController您可以从子类获取UINavigationController实例并设置委托,以便了解segue的完成情况,如图所示.跟踪segues的另一个合理位置可能是AppDelegate.
从视图控制器(简称VC)执行此操作的示例:
class MyViewControllerSubclass : UIViewController, UINavigationControllerDelegate {
func viewDidLoad() {
self.navigationController.delegate = self
}
func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool) {
println("Did show VC: \(viewController)")
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这只能说明你当顺着接下去的VC完全,其会viewWillAppear()或viewDidAppear()呈现在VC委托方法; 但是,他们没有告知目标VC何时未提供.它也只有在View Controller是导航控制器堆栈的一部分时才有效.
在您正在跟踪的VC中,您可以添加以下内容以检测VC(及其内存)何时被释放,或覆盖该viewWillDisappear()方法.
deinit {
println(__FUNCTION__, "\(self)")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19866 次 |
| 最近记录: |