Ayt*_*ing 2 iphone uitabbarcontroller uiinterfaceorientation
快速问题:
我有一个带2个导航控制器的UITabBarController [让我们称之为左右控制器]
在默认选择的左侧控制器上,我可以推送一个检测界面方向的新视图控制器.
在右侧控制器上我可以推送相同的视图控制器,但它不会检测接口方向,或者就此而言,它甚至都不会进入所有T__T的shouldAutoRotateInterface方法
Haaalp!
如果它有任何相关性,我推动的View Contoller使用hidesBottomBarWhenPushed属性.
Jan*_*ano 13
这很可能是你的问题:
标签栏控制器默认支持纵向方向,除非所有根视图控制器都支持这种方向,否则不要旋转到横向 方向.当发生设备方向更改时,选项卡栏控制器将查询其视图控制器数组.如果其中任何一个不支持方向,则标签栏控制器不会更改其方向.
解决方案是在每个导致您的视图的视图控制器上覆盖以下方法:
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
例如,使用UITabBarControllerIB中的默认值,将其替换为仅包含上述方法的子类.
我在这方面有点迟到了,但是我在启动时遇到了一个自动旋转问题,我想要一个标签栏应用程序,我总是以纵向运行.
应用程序的plist具有必要的设置以启动并且仅允许纵向模式,并且我的所有视图控制器仅允许纵向模式.然而,当我启动应用程序将我的iPhone保持在横向状态时,应用程序以纵向方式启动,但随后旋转到横向!
而不是子类UITabBarController,我直接无视UITabBarController的shouldAutorotateToInterfaceOrientation:使用上类类中的方法UITabBarController.我在我的app委托中包含了这段代码:
@implementation UITabBarController(UITabBarControllerCategory)
-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
Run Code Online (Sandbox Code Playgroud)
工作精美,非常轻巧.
| 归档时间: |
|
| 查看次数: |
5017 次 |
| 最近记录: |