如何在`willRotateToInterfaceOrientation:`上停止旋转

时间:2010-11-01 14:45:18

标签: iphone ipad rotation

我需要一种方法在旋转时强制方向回到纵向。

问题是我有一个Tab栏控制器,但只想让其中一个标签自动旋转。

所以我允许所有标签上的旋转,现在我需要一种方法来拦截我不想允许旋转的标签上的旋转。

我猜我可以在- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration上执行此操作吗?

由于 汤姆

2 个答案:

答案 0 :(得分:0)

无法强制旋转。在UITabBarController的情况下,你运气不好。接口旋转是全有或全无的情况。如果其中一个标签无法旋转,则整个UITabBarController将保持纵向模式固定。

答案 1 :(得分:0)

如果在所有viewControllers中实现,这甚至可以工作:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return (return ([[self.tabBarController.selectedViewController class] isSubclassOfClass:[TurnableViewController class]]) || UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}

但是,如果您切换回不可转动的状态,则不会转回视图,直到您倾斜设备...