我在我的应用中进行了聚光灯搜索。我有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 })
}