我在自动布局方向上遇到了麻烦。简单地说,我推动视图控制器使用这行代码从rootVC获取控制权
fooBar *foo = [[fooBar alloc]initWithNibName:@"fooBar" bundle:nil];
[self.navigationController pushViewController:foo animated:NO];
我的fooBar视图控制器具有自动布局,因此当我转动手机但手机仍然处于纵向模式时,我应该可以获得横向方向。
同样奇怪的部分是我调试,下面的方法不起作用..(我把它们放到fooBar VC)
(BOOL) shouldAutorotate{
return YES;
}
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
//returns true if want to allow orientation change
return TRUE;
}
构建选项Ios SDK 6.0,Xcode 5.1
答案 0 :(得分:2)
这可能是因为导航控制器没有转发这些方法调用。如果需要,您需要创建自己的自定义导航控制器并遵循以下模式:
- (BOOL)shouldAutorotate
{
return [self.visibleViewController shouldAutorotate];
}
- (NSUInteger)supportedInterfaceOrientations
{
return [self.visibleViewController supportedInterfaceOrientations];
}
总而言之,创建自己的UINavigationController的具体实现,然后将上述两个方法转发到当前可见的任何视图控制器。然后,您应该注意到在fooBar类中调用的那些方法。
答案 1 :(得分:0)
请检查项目设置是否检查了这些方向。