我有一個可搜索的tableview控制器(使用UISearchController和NSFetchedResultsController)列出項目的行。UISearchController - 警告:嘗試從視圖控制器,而正在演示或解僱正在進行中
它有用戶點擊一行來選擇項目,該項目調用一個展開到上一個tableview。
當用戶點擊某一行時,我希望所選的FetchedResultsController對象被髮送回原始的tableview控制器,並填充原始tableview中的一個字段並關閉當前的可搜索tableview控制器。
當我點擊一行選擇項目沒有搜索,它工作正常,沒有任何警告。
然而,當我搜索表,然後從我提出以下警告經過濾項選擇:
警告:嘗試從視圖控制器駁回,而演示或解僱是進展!
unwind segue從故事板中的tableview單元連線到同一個tableview控制器上的「Exit」圖標。下面是開卷SEGUE代碼:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "myUnwindSegue" {
let indexPath = tableView.indexPathForSelectedRow
selectedAirfield = frc.objectAtIndexPath(indexPath!) as? Airfields
self.navigationController?.popViewControllerAnimated(true)
}
}
我也曾嘗試:
if !self.isBeingDismissed() {
self.navigationController?.popViewControllerAnimated(true)
}
但是,這使我有同樣的警告如上。
我也曾嘗試:
self.dismissViewControllerAnimated(true, completion: nil)
但這只是讓我回到當前的tableview並不讓我回到以前的tableview控制器和給了我以下警告:
popToViewController :過渡:在現有轉換或演示發生時調用;導航堆棧將不會更新。
我也嘗試禁用segue上的動畫到可搜索的tableview控制器,但這沒有效果。
我也曾嘗試把:
self.searchController?.loadViewIfNeeded()
在viewDidLoad中
,也試過:
deinit{
if let superView = resultSearchController.view.superview {
superView.removeFromSuperview()
}
}
這兩種都沒有解決問題。
重申,只有在選擇未過濾的tableview行時選擇搜索結果並完美工作時纔會發生。
我在Xcode 7.2.1上。
任何幫助表示讚賞。
當用戶點擊某一行時,我希望所選的FetchedResultsController對象被髮送回原始的tableview控制器,並在原始tableview中填充一個字段並關閉當前可搜索的tableview控制器。 –