我有一個UISplitViewController
嵌入在容器視圖中(因爲它不在我的應用程序的根目錄中),除了一個問題外,其中的機制運行良好:導航欄iPad上缺少詳細視圖。缺少標題欄詳細信息UISplitViewController的視圖
初始設置基本上如下:
- 在IB中,將一個分割視圖控制器到故事板,它創建一個拆分視圖控制器,導航控制器,一個表視圖控制器(主),一個基本的視圖控制器(細節),以及連接它們的細節。
- 添加具有容器視圖的常規View Controller。創建一個從容器視圖嵌入Segue到分割視圖控制器。
- 從原型細胞到詳細視圖控制器,通過在主控制器將以下代碼支持的添加另一個賽格瑞:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "showDetail", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
let destinationViewController = segue.destination as! DetailViewController
let path = self.tableView.indexPathForSelectedRow! as NSIndexPath
destinationViewController.selectedTrainingId = (self.itemList[path.row] as! MyListItem).id
}
}
- 添加數據。
將項目加載到主視圖中並選擇細節正在工作。
這裏是什麼樣子的IB(以節省空間我展示了iPhone佈局,但之間的關係應該是可見的,無論如何):
有幾個答案與SO處理類似的問題。最近的匹配建議爲細節視圖添加一個自己的導航控制器。我不明白爲什麼這將是必要的,因爲它的工作原理與iPhone相同,我相信這表明詳細視圖使用與主(根)視圖相同的導航控制器。但我試了一下。正如我懷疑的那樣,結果是最初顯示了一個導航欄。但只要選擇了一個項目,該欄就會消失。以下是設置。
在許多應用程序(消息,電子郵件,Skype的......),你可以看到主從的觀點不同的頂級酒吧。雖然從技術上講,我的應用程序並不是絕對需要這兩種功能,但它並不是特別適合使用彩色條。所以,問題是:如何獲得詳細視圖的導航欄。