ios - 当与添加到 subview 的 UITableView 一起使用时,prefersLargeTitles 无法按预期工作

标签 ios swift tableview navigationcontroller

我目前正在使用两个 viewController 来设计以下布局。它由 Storyboard 中定义的 MainController 组成,其中只有一个 View 作为 subview ,以及一个以编程方式添加到该 subview 的 CustomController,该 subview 通过 xib 文件扩展其自己的 View 。 CustomController 只有一个 tableview 作为 subview 。

MainController 附加了导航栏。在CustomController viewDidLoad()中,我将prefersLargeTitles设置为true,当tableView滚动时它不会按预期工作。当 tableview 向上滚动时,标题不会折叠,当 tableview 向下滚动时,标题不会展开。

image

目前,只有当 MainController 直接将 tableview 作为第一个 subview 时,我才能实现此行为:

image

但我需要能够使用 CustomController 来使用此行为来解决应用架构问题。

我的猜测是,由于某种原因,tableview 滚动的内部机制没有传递给它的父导航 Controller 。

有什么我需要传递的引用吗?也许修改 View 堆栈?

最佳答案

Apple 建议仅在主视图中显示大标题。如果您的 View Controller 有子部分,请确保在代码或 Storyboard 中设置 navigationItem.largeTitleDisplayMode = .never。

此外,如果您需要自定义 table 周围的 View ,也会出现问题。通常,您为此创建一个 UIViewController,然后根据需要添加 View 和 tableView。如果 tableView 不是 Storyboard中的第一个 View ,则大标题无法自动隐藏。

enter image description here

关于ios - 当与添加到 subview 的 UITableView 一起使用时,prefersLargeTitles 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956304/

相关文章:

ios - UIPopoverController 内的 UIImagePickerController 在 iOS7 上不显示取消按钮

iphone - 是否可以检测到状态栏时钟上的 "Minute"何时发生变化?

ios - 使用 Swift 协议(protocol)时短路

ios - 数组对象加载但未连接到单元格

ios - Objective C ScrollView 屏幕截图在 ios 13 中存在问题

ios - 如何保持 var 不再询问条款和条件

ios - 字符串编码 - Swift

xcode - 如何在 IOS8 键盘扩展上使用自动布局

ios - moveRowAt IndexPath 在 Swift 2 中使用核心数据

ios - 为什么我的原型(prototype)单元背景颜色在 iPad 模拟器上没有改变?