我有一个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的......),你可以看到主从的观点不同的顶级酒吧。虽然从技术上讲,我的应用程序并不是绝对需要这两种功能,但它并不是特别适合使用彩色条。所以,问题是:如何获得详细视图的导航栏。