我想先告诉Spotlight打开它,然后第一个UIViewController
。我试图通过NSNotificationCenter
。但是我尝试了几种方法,但是当我使我的密钥像“spotlightOpen”那样时,他们不会。当我使用标准名称如UIApplicationDidFinishLaunchingNotification
它适用于我。下面我写了几种方法,我试过当应用程序未运行时,Spotlight搜索不起作用
在
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
NSNotificationCenter.defaultCenter().postNotificationName("selectSong", object: nil)
return true
}
在第一控制器
NSNotificationCenter.defaultCenter().addObserverForName("selectSong", object: nil, queue: NSOperationQueue.mainQueue()) { (NSNotification) -> Void in
print("Song table is loaded")
}
不过我在第一控制器做到了。但它也不适合我。
NSNotificationCenter.defaultCenter().addObserver(self, selector: "selectedSong", name: "selectSong", object: nil)
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
print("continueUserActivity")
userDefault.setBool(true, forKey: "applicationDelegateOpen")
if userActivity.activityType == CSSearchableItemActionType {
print("CSSearchableItemActionType")
if let identifier = userActivity.userInfo?[CSSearchableItemActivityIdentifier] {
userDefault.setValue(identifier, forKey: "spotlightIdentifier")
userDefault.setBool(true, forKey: "spotlightBool")
print(identifier)
return true
}
}
return false
}
我仍然尝试当第一个UIViewController加载我通知通知第二个UIViewController,但我得到了同样的结果。 – Alexander