设置方向问题

时间:2015-02-19 11:45:35

标签: ios iphone orientation

我的ViewController“MyViewControllA”支持Orientation Landscape和Portrait。而我的ViewController“MyViewControllB”仅支持纵向模式。我在“MyViewControllA”上推送“MyViewControllB”现在它在“MyViewControllA”处于纵向模式时工作正常。但当“MyViewControllA”处于Lanscape模式时,“MyViewControllB”的UI会变形。

I am Using these two methods in "MyViewControllB" for Orientation
- (NSUInteger) supportedInterfaceOrientations {

    return UIInterfaceOrientationMaskPortrait;

}
-(BOOL)shouldAutorotate{
    return UIInterfaceOrientationMaskPortrait;
}
Please correct me where I am wrong???

Thanks

2 个答案:

答案 0 :(得分:0)

如果你使用NavigationController,你必须实现类似的东西:

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

因此每个ViewController中的函数调用都是可见的。

答案 1 :(得分:0)

如何使用容器控制器决定方向取决于您的视图控制器层次结构。
如果我记得很清楚,导航控制器仅支持所有视图控制器通用的方向。要覆盖此行为,您可以继承UINavigationController类或(更好地)使用其protocol

navigationControllerPreferredInterfaceOrientationForPresentation:
navigationControllerSupportedInterfaceOrientations: