[英]Dismiss ViewController presented modally when tab is changed
I have a UITableViewController
that presents a UIViewController
modally when didSelectRowAt
is invoked. 我有一个UITableViewController
,当didSelectRowAt
被调用时,它以模态形式呈现一个UIViewController
。
My application is wrapped in a UITabBarController
. 我的应用程序包装在UITabBarController
。
I would like to dismiss the UIViewController
when a user changes tabs. 当用户更改标签时,我想关闭UIViewController
。
I have tried to call dismiss
on my controller like so, but this does not work. 我试图像这样在控制器上调用dismiss
,但这是行不通的。
let vc = VimeoController()
....
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
vc.dismiss(animated: true) {
print("dismissed")
}
}
...
fileprivate func presentModal() -> Void {
vc.modalPresentationStyle = .overCurrentContext
present(vc, animated: true, completion: nil)
}
Place your dismiss call within the viewDidDisappear lifecycle hook of your VimeoController
controller instead. 请将您的解除呼叫置于VimeoController
控制器的viewDidDisappear生命周期挂钩中。
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
dismiss(animated: true, completion: nil)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.