我的应用程序委托(delegate)中有一个 3d 触摸功能用于快捷方式,当从 iphone 中点击 3d 触摸项目时,它必须实例化一个 viewcontroller。
代码如下:
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
if shortcutItem.type == "com.kevinvugts.addStuf" {
let sb = UIStoryboard(name: "Main", bundle: nil)
let exerciseVC = sb.instantiateViewController(withIdentifier: "exerciseVC") as! exerciseVC
let root = UIApplication.shared.keyWindow?.rootViewController
root?.present(exerciseVC, animated: false, completion: { () -> Void in
completionHandler(true)
})
}
}
此代码导致此警告/错误:
Warning: Attempt to present <ActiveRest.exerciseVC: 0x131d39320> on <ActiveRest.ViewController: 0x131d0e470> whose view is not in the window hierarchy!
这与延迟有什么关系吗?
感谢您的帮助!
亲切的问候。
最佳答案
view is not in the window hierarchy
这意味着你的 viewcontroller 的 View
还没有加载到内存中。所以你无法在上面显示 viewcontroller
。您应该从 viewcontroller(我的意思是从您的 rootviewController)
的 viewDidAppear
显示 viewcontroller。
关于ios - 3d touch swift 3 不打开viewcontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40174580/