自动布局方向不起作用

时间:2014-07-07 11:57:00

标签: ios rotation orientation autolayout portrait

我在自动布局方向上遇到了麻烦。简单地说,我推动视图控制器使用这行代码从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

2 个答案:

答案 0 :(得分:2)

这可能是因为导航控制器没有转发这些方法调用。如果需要,您需要创建自己的自定义导航控制器并遵循以下模式:

- (BOOL)shouldAutorotate
{
    return [self.visibleViewController shouldAutorotate];
}

- (NSUInteger)supportedInterfaceOrientations
{
   return [self.visibleViewController supportedInterfaceOrientations];
}

总而言之,创建自己的UINavigationController的具体实现,然后将上述两个方法转发到当前可见的任何视图控制器。然后,您应该注意到在fooBar类中调用的那些方法。

答案 1 :(得分:0)

Orientation settings

请检查项目设置是否检查了这些方向。