【发布时间】:2017-05-17 00:27:01
【问题描述】:
我目前在我的主视图控制器(视图控制器 A)中有以下功能。
func myAction() {
let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let viewControllerC : UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "ViewControllerC") as UIViewController
self.present(viewControllerC, animated: false, completion: nil)
}
当当前显示View Controller A 并调用myAction 时,它工作正常并显示viewControllerC。
但是myAction这个函数基本可以随时调用。有时即使View Controller A 不是屏幕上的当前视图控制器。有时当显示View Controller B 时,这个函数仍然会被调用。它被称为罚款。但在这种情况下,它不会加载 viewControllerC。
我还尝试了以下想法,无论活动视图控制器是什么都可以显示。但这也没有用。
self.view.window?.rootViewController?.present(viewControllerC, animated: false, completion: nil)
无论当前显示什么视图控制器,当调用myAction 时,如何让它显示viewControllerC?
【问题讨论】:
-
这里有很多关于获取顶视图控制器的想法 (stackoverflow.com/questions/26667009/…)
-
@danh 完美!我使用了公认的答案,这似乎有效!非常感谢。
标签: ios swift uiviewcontroller presentviewcontroller