嵌套详细视图(UISplitViewController)中缺少后退按钮

Posted

技术标签:

【中文标题】嵌套详细视图(UISplitViewController)中缺少后退按钮【英文标题】:Missing back button in nested detail view (UISplitViewController) 【发布时间】:2016-12-31 14:50:02 【问题描述】:

我正在尝试为 UISplitViewController 的详细视图控制器使用嵌套视图控制器。为简单起见,我将主视图保持原样;细节视图里面有一个按钮,'Go far',它连接到第二个视图控制器。在紧凑型设备 iPhone 上,一切正常,用户点击“Go far”并导航到第二个视图控制器,左上角出现后退按钮,用户可以返回第一个视图。

但在 iPad 的横向模式下,当用户点击“Go far”按钮并导航到第二个视图控制器时,那里没有返回按钮。

这是我的设置:

整个项目可以在https://github.com/maysamsh/SplitViewWithNestedDetailViews获得

【问题讨论】:

【参考方案1】:
    问题的根源在于第一个和第二个之间的导航控制器。没必要,直接删除吧。 直接从“进一步”按钮创建一个 Push segue 到第二个视图。

    将 FirstViewController 中的 prepareForSegue 更改为:

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
        let controller = segue.destination
        controller.navigationItem.leftBarButtonItem = splitViewController?.displayModeButtonItem
        controller.navigationItem.leftItemsSupplementBackButton = true
        print("prepare")
    
    

【讨论】:

以上是关于嵌套详细视图(UISplitViewController)中缺少后退按钮的主要内容,如果未能解决你的问题,请参考以下文章

嵌套 UIView 调整大小

Swift 嵌套堆栈视图

嵌套的拆分视图控制器

使用嵌套滚动视图实现 iOS 7 跳板多任务 UI

使用 xamarin.ios c# 以编程方式添加嵌套的堆栈视图

嵌套推送动画可能导致导航栏损坏多次警告