【发布时间】:2015-12-02 18:08:50
【问题描述】:
我有以下问题。当我在手机上运行我的应用程序时,3d 触摸图标并选择快速操作,它会启动应用程序并显示正确的视图控制器,但是当我将应用程序置于后台并尝试调用快速操作时,它只会打开我拥有的应用程序留下它。所以为了让它工作,我每次都必须杀死我的应用程序。 这是我的代码:
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
if shortcutItem.type == "com.traning.Search" {
let sb = UIStoryboard(name: "Main", bundle: nil)
let searchVC = sb.instantiateViewControllerWithIdentifier("searchVC") as! UINavigationController
let root = UIApplication.sharedApplication().keyWindow?.rootViewController
root?.presentViewController(searchVC, animated: false, completion: { () -> Void in
completionHandler(true)
})
}
}
提前致谢。
【问题讨论】:
-
它是否调用 performActionForShortcutItem? root = nil 吗?
-
它必须在哪里调用performActionForShortcutItem?
-
我的意思是尝试在 performActionForShortcutItem 中打印一些内容以确保它被调用。也许 print(root) 可以检查是否调用了 performActionForShortcutItem 并检查以确保 root 不为零。
-
问题是它只在我启动应用程序后调用该方法一次,然后如果我将它放在后台并尝试调用该方法,则没有任何反应。
-
你知道它没有调用它吗?或者它可能会被调用但不做任何事情?按照我的建议去做将有助于我们确定它是什么。你这样做吗?结果如何?
标签: ios swift 3dtouch quickaction