2014-12-02 39 views
5

我必須在這裏做錯事。 我有一個UITableView,並實現了一個UISearchController。 我有一個原型單元格鏈接到詳細信息屏幕,並在prepareForSegue方法中傳遞選定的值。使用UISearchController的segue的不同行爲

對於普通視圖控制器,所有工作正常,選中一行並按下詳細信息屏幕(即從右側滑入)。

然而,當有一個主動搜索,使用UISearchController,細節畫面模態呈現(即從屏幕底部向上滑動)未經UINavigationBar的(所以沒有可能性去「背」)

我不使用didSelectRowAtIndexPath方法,因爲我用故事板推詳情屏幕

爲什麼不同的呈現動畫時「prepareForSegue」相同的代碼被正確調用在每種情況下:

// MARK: - Navigation 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if (segue.identifier! == "PresentContactDetail") { 
     // pass person details from selected row 
     if let selectedRow = self.tableView.indexPathForSelectedRow()?.row { 
      let selectedPerson = self.visibleResults[selectedRow] 
      (segue.destinationViewController as ContactDetail).personRecord = selectedPerson 
     } 
    } 
} 

任何建議感激地收到。

回答

1

in ViewDidLoad of UITableViewController set definesPresentationContext = true

相關問題