【发布时间】:2017-10-18 19:57:58
【问题描述】:
这就是我的应用的结构。
MainViewController (UITabViewController) --> VC1 (UIViewController) --> AddVC (UIViewController)
--> VC2 (UIViewController)
--> VC3 (UIViewController)
我想向我的应用程序添加快速操作,因此当我按下来自AppDelegate 的操作按钮时,我可以访问AddVC。VC1 有一个使用 segue 转到 @ 的添加按钮987654325@.
这就是我想要做的:创建AddVC 视图控制器,然后创建MainViewController,然后我从中检索VC1,我尝试用它来呈现AddVC 屏幕。
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
let vc = storyboard.instantiateViewController(withIdentifier: "AddVC") as! AddVC
switch shortcutItem.type {
case "Add":
let mainVC = app?.getRootViewController() as! MainViewController
let vc1 = mainVC.getVC1()
DispatchQueue.main.async {
vc1?.present(vc, animated: true, completion: nil)
}
}
当我这样做时,它总是转到VC1 视图控制器,而不是AddVC,因此不执行segue。
我还尝试在DispatchQueue 中使用performSegue,效果相同。
有人知道我怎样才能完成这项工作吗?
【问题讨论】: