技术的乐趣在于分享,欢迎多多交流,多多沟通。
全部博文(877)
分类: iOS平台
2015-10-26 16:00:08
1.在AppDelegate中添加如下代码:
(1) self.window.rootViewController = self.iNavController;
(2)// [self.window addSubview:self.iNavController.view];
在iOS6.0 中只能使用(1)方法,如果使用(2)再去设置屏幕旋转会不起作用的。iOS6.0以下则不会出现上述问题。
2.屏幕旋转
(1)将屏幕旋转统一写到rootViewController中。例如:上面(1)中rootViewController是UINavigationController,则将旋转写到
UINavigationController中。为UINavigationController添加类别,代码如下:
- (BOOL) shouldAutorotate
{
//全部调用self.topViewController,就是返回当前呈现出来的viewController里面的设置
return self.topViewController.shouldAutorotate;
}
- (NSUInteger)supportedInterfaceOrientations
{
return self.topViewController.supportedInterfaceOrientations;
}
(2)支持全部方向的旋转
iOS6.0需要下面三个方法,代码如下:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation != UIInterfaceOrientationMaskPortraitUpsideDown);
}
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
(3)禁止屏幕旋转
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;//只支持这一个方向(正常的方向)
}