我目前正在使用两个 viewController 来设计以下布局。它由 Storyboard 中定义的 MainController 组成,其中只有一个 View 作为 subview ,以及一个以编程方式添加到该 subview 的 CustomController,该 subview 通过 xib 文件扩展其自己的 View 。 CustomController 只有一个 tableview 作为 subview 。
MainController 附加了导航栏。在CustomController viewDidLoad()中,我将prefersLargeTitles设置为true,当tableView滚动时它不会按预期工作。当 tableview 向上滚动时,标题不会折叠,当 tableview 向下滚动时,标题不会展开。
目前,只有当 MainController 直接将 tableview 作为第一个 subview 时,我才能实现此行为:
但我需要能够使用 CustomController 来使用此行为来解决应用架构问题。
我的猜测是,由于某种原因,tableview 滚动的内部机制没有传递给它的父导航 Controller 。
有什么我需要传递的引用吗?也许修改 View 堆栈?
最佳答案
Apple 建议仅在主视图中显示大标题。如果您的 View Controller 有子部分,请确保在代码或 Storyboard 中设置 navigationItem.largeTitleDisplayMode = .never。
此外,如果您需要自定义 table 周围的 View ,也会出现问题。通常,您为此创建一个 UIViewController,然后根据需要添加 View 和 tableView。如果 tableView 不是 Storyboard中的第一个 View ,则大标题无法自动隐藏。
关于ios - 当与添加到 subview 的 UITableView 一起使用时,prefersLargeTitles 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956304/