在Interface Builder中,我有以下
UIViewController
-- View
---- TableView
在我的UIViewController中,我已经设置了
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
我还有IB中的其他视图控制器。我在这里错过了什么?我可以让它旋转的唯一方法是使用变换方法。
答案 0 :(得分:3)
你是否在任何机会使用基于标签的应用程序中的tableview?如果您是,如果标签栏控制器的所有视图控制器都支持横向模式,则只能获得支持横向模式的视图。
除此之外,我认为你的观点不支持横向模式的任何理由。
答案 1 :(得分:1)
问题在于自动调整设置。更具体地说,在Interface Builder中,确保单击自动调整大小,然后在大小检查器中,确保tableview所有它的表视图的超级视图在顶部,左侧,右侧填充红色箭头,并选择两个内部箭头。
我想知道提问者是否确实在主视图的子视图中有了表视图。我在视图层次结构中更深层次的表视图中看到了这种行为:
默认情况下,主视图的自动调整箭头设置正确,但如果添加其他视图,则不会。
回答有关多个视图控制器问题的问题:请注意,UIViewController不是UIView的委托。事实上,事件链看起来是另一种方式 - 首先系统看到自动旋转并告诉UIViewControllers它。如果UIViewControllers的shouldAutoresize返回yes,则UIViewControllers会调整其主视图的大小。如果设置正确,主视图的大小调整可以自动调整其子视图的大小。
根据Apple文档,您不应该有多个视图控制器控制视图的不同部分 - 例如,在主视图的子视图中的表视图的单独的tableview控制器 - 因为它与事件链混淆 - 你可以看到这是怎么回事。不知道这是否有用。
答案 2 :(得分:0)
我刚试过这个,它按预期工作。我想你需要提供更多细节。根据我的经验,当视图“失败”旋转时,这是因为某个视图控制器在某处告诉它不要。检查以确保所有视图控制器都从shouldAutorotateToInterfaceOrientation返回正确的值:
答案 3 :(得分:0)
如果你正在使用故事板,你的VC包含一个UITableview,检查你的场景是否取消选中AutoLayout。