2015-10-08 99 views
1

我在我的應用程序中整合了CoreSpotlight。我希望該用戶能夠在聚光燈搜索中找到需要的信息,並且在用戶將在DetailViewController中打開聚光燈信息中的此信息後打開。我做到了,聚光燈效果不錯,但當應用程序打開時,我看到這個錯誤試圖在釋放視圖控制器時加載視圖控制器的視圖是不允許的,並且可能導致未定義的行爲(UIAlertController:0x1245a0560)雖然我不' t使用UIAlertController。我在AppDelegate func中調用了必須通過索引打開對象的UITableViewController的函數。但它沒有出現。 showData()performSegueWithIdentifier("show", sender: nil)仍然存在錯誤原因:'Receiver()沒有標識符'show''。雖然我添加了segue(使用顯示名稱),並且它通常在我選擇單元格時起作用。請幫幫我。嘗試在釋放視圖控制器時加載視圖控制器的視圖。 CoreSpotlight

AppDelegate 
    func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool { 
     if userActivity.activityType == CSSearchableItemActionType { 
      if let identifier = userActivity.userInfo?[CSSearchableItemActivityIdentifier] as? String { 
       print(identifier) 
       checkWord = identifier // checkWord is String 

       let tableC = TableViewController() 
       tableC.showData() 

       return true 
      } 
     } 
     return false 
    } 


    func showData() { 
    let matchString = appDel.checkWord 
    if mainArray.contains(matchString) { 
     let ind = mainArray.indexOf(matchString)! 

     let indexPathMain = NSIndexPath(forItem: ind, inSection: 0) 
     print(indexPathMain) 
     self.tableView.selectRowAtIndexPath(indexPathMain, animated: true, scrollPosition: UITableViewScrollPosition.None) 

     performSegueWithIdentifier("show", sender: nil) 
     print("Show data") 
    } 
} 

回答

8

如果您未實現willContinueUserActivityWithType,或者返回false,則表示iOS應該處理活動。在這種情況下,它可以顯示UIAlertController。所以爲了擺脫這個警告,對於您在此次代理呼叫中的活動返回true:

func application(application: UIApplication, willContinueUserActivityWithType userActivityType: String) -> Bool { return true }

相關問題