我在容器视图中嵌入了UISplitViewController
(因为它不在我的应用程序的根目录下),除了一个问题外,其中的机制运行良好:导航栏iPad上缺少详细视图。
初始设置基本如下:
的
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,...)中,您可以看到主视图和详细视图的单独顶部栏。虽然从技术上讲我的应用并不是绝对需要两者,但它并不是特别漂亮,尤其是彩色条。因此,问题是:如何获取详细信息视图的导航栏。