如何从应用程序委托Swift更改选项卡栏

时间:2018-07-17 11:26:55

标签: ios swift appdelegate

大家好,我遇到了一个问题,我的初始根视图控制器是一个标签栏,我想将第一个VC的标签栏索引更改为0。我要实现的是,当我进行深层链接时,我想始终转到第一个选项卡,并通过NotificationCenter函数执行搜索。问题是我希望所有内容都按说重新设置,并使用初始视图控制器和所有功能返回到应用程序的初始打开状态。发生的事情是我的代码在我将其留给第一个选项卡索引时可以正常工作,但是当我将其留给2号或3号选项卡索引时,它永远不会返回并运行我的代码。这是我在应用程序委托中所做的事情。

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    let urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false)
    let items = (urlComponents?.queryItems)! as [NSURLQueryItem]
    print(url.scheme)
    if (url.scheme == "urlscheme") {

        if let _ = items.first, let propertyName = items.first?.name, let propertyValue = items.first?.value {
            let vcTitle = url.query!//"propertyName"
            print(propertyName)
            print(propertyValue)



            let rootViewController = self.window!.rootViewController as! UITabBarController

            rootViewController.selectedIndex = 0

            if let navigationController = rootViewController.selectedViewController as? UINavigationController {
                navigationController.popToRootViewController(animated: true)
            }
            self.window!.makeKeyAndVisible()
            let name = NSNotification.Name(rawValue: "GoToNotification")
            NotificationCenter.default.post(name: name, object: nil)


        }


    }
    return false
}

0 个答案:

没有答案