【问题标题】:Swift 3D Touch Open TabBarController Not RootViewControllerSwift 3D Touch 打开 TabBarController 不是 RootViewController
【发布时间】:2018-06-13 07:46:08
【问题描述】:

我目前正在尝试将 3D 触控添加到我的应用中。我已经实现了我的应用程序显示 UIApplicationShortcutItems,但现在我无法为它们分配操作。

这是我当前的代码:

func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void)
{
   let homeVC = HomeVC()

   if shortcutItem.type == "com.appName.actionType1"
   {
       homeVC.tabBarController?.selectedIndex = 1
   }

   if shortcutItem.type == "com.appName.actionType2"
   {
       homeVC.tabBarController?.selectedIndex = 2
   }
}

这样做并不难,但我遇到的问题是我的HomeVC 不是rootViewController

有什么建议吗?我真的很感激。

【问题讨论】:

    标签: swift uitabbarcontroller 3dtouch rootviewcontroller


    【解决方案1】:

    问题是你每次都在创建一个 HomeVC 的新实例,而不是检查类似的东西

    if let homeVC = window.rootViewController as? HomeVC { ... }
    

    【讨论】:

    • 谢谢,但问题是HomeVC 不是rootViewController
    • 然后在某处保留对它的引用,或者至少保留对标签栏控制器的引用。
    • 好的,但我该怎么做。这基本上就是我正在尝试的
    • 您可以尝试将其作为属性保留在应用委托中。
    • 但是,对不起,我对这些东西很陌生
    猜你喜欢
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多