如何从Spotlight Search打开所需的控制器?在斯威夫特

时间:2015-12-23 12:17:24

标签: ios xcode swift swift2 spotlight

我在我的应用中进行了聚光灯搜索。我有UIPageViewController作为RootViewController和七个不同的ViewControllers。当用户在我的应用程序中找到聚光灯下的信息时,我可以打开所需的控制器。但我在帮助NSNotificationCenter的帮助下,我可以打开一个需要的控制器。我能够做到这一点,我有工作。我认为这是错误的方式,我不知道如何做到这一点。我怎么能这样呢?

我展示了我的认识并且它有效,但我认为这不是一个好的

AppDelegate

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
        if userActivity.activityType == CSSearchableItemActionType {
            let identifier = Int(userActivity.userInfo![CSSearchableItemActivityIdentifier] as! String)!
            startIndex = identifier
            notificatioCenter.postNotificationName("openSpotlight", object: nil)
        }
        return true
    }

UIPageViewController as RootViewController

 override func viewDidLoad() {
        super.viewDidLoad()
        notificationCenter.addObserver(self, selector: "openSearchFromSpotligt", name: "openSpotlight", object: nil)

}

 func openSearchFromSpotligt() {
        let startIndex = appDel.startIndex
        let startingController = viewControllerAtIndex(startIndex)! // 0
        pageViewController.setViewControllers([startingController], direction: .Forward, animated: false, completion: { done in })
    }

0 个答案:

没有答案