2015-10-08 2 views
1

Я интегрирую CoreSpotlight в свое приложение. Я хочу, чтобы этот пользователь найдет необходимую информацию в поиске прожекторов и после того, как пользователь откроет эту информацию в информации о прожекторах, откроется в DetailViewController. Я сделал это, прожектор работает хорошо, но когда приложение открывается, я вижу эту ошибку. Попытка загрузить представление контроллера представления при его освобождении не допускается и может привести к неопределенному поведению (UIAlertController: 0x1245a0560), хотя я не знаю, t использовать UIAlertController. Я сделал в AppDelegate func, который вызывает функцию UITableViewController, которая должна открывать объект по индексу. Но он не появляется. Еще есть ошибка в showData() performSegueWithIdentifier("show", sender: nil)Причина: 'Получатель() не имеет сегмента с идентификатором' show ''. Хотя я добавляю segue (с именем show), и он работает, когда я обычно выбираю ячейку. Пожалуйста, помогите мне.Пытается загрузить представление контроллера просмотра во время его освобождения. 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 или если она возвращает ложь, то это означает, что IOS должен обрабатывать активность. И в этом случае он может показать UIAlertController. Поэтому, чтобы избавиться от этого предупреждения, вернитесь для своей деятельности в этом деле-делетете:

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