导航控制器和 UITableView 方向问题

Posted

技术标签:

【中文标题】导航控制器和 UITableView 方向问题【英文标题】:Navigation Controller and UITableView Orientation issue 【发布时间】:2012-11-20 15:40:55 【问题描述】:

当我决定让我的应用程序与横向兼容时,我发现 UITableView 有一个奇怪的行为。

我有两个 UITableView 分别链接到 UITableViewControllers 和一些数据。 我创建了一个链接到第一个 TVC 的导航控制器,并在 TVC 之间添加了一个 segue

我运行模拟器,第一个 tableview 出现了。 我切换到横向模式并单击一行以查看第二个表格视图。 我回到纵向模式,然后单击返回按钮。

当第一个tableview重新出现时,底部有一个奇怪的水平滚动,我可以移动tableview。似乎第一个 tableview 仍然认为处于 Landscape Mode :

我在 viewWillAppear 中尝试了一些更改,但没有结果...

有人遇到过这个问题吗?

【问题讨论】:

【参考方案1】:

如果您在 UITableview 的后面有一个 UIScrollview,有时可能会发生这种情况。它与视图的旋转和自动布局有关。检查您是否正在设置 tableview 的框架或类似的东西。

【讨论】:

我找到了两种方法来解决这个问题 1.取消选中自动布局。但我想使用它。 2.设置框架为:self.view.frame = CGRectMake(0, 0, 200, 200);在 viewWillAppear 方法中。 但我不明白为什么它适用于 0、0、200、200 值。如果你能解释一下,我会很感激的

以上是关于导航控制器和 UITableView 方向问题的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 和分段控制器在 IOS 11 导航栏下移动

UITableView 中自定义单元格中的导航控制器和 UIImageView

UITableView 导航控制器动态细节

导航控制器内的 UITableView 在关闭 presentViewController 后不滚动

在导航控制器中嵌入三个 UITableView 的 UIPageViewController

在导航控制器中默认隐藏 UITableView 搜索栏