我想先告訴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