潜枭 2013-11-19 09:23 采纳率: 0%
浏览 1885

ios自动旋转出的神奇效果,2个月未解决

1、app有多个页面,但是只允许一个页面旋转,其余不允许旋转的页面添加如下代码:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return NO;
}

- (BOOL)shouldAutorotate
{
return NO;
}

- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}

允许旋转的页面添加如下代码:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}


- (BOOL)shouldAutorotate
{
return YES;
}


- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}

2、页面之间采用UINavigationController切换(push、pop)
self.window.rootViewController = _navigationController;

3、假设现在有3个页面,第2个页面允许旋转,1、3页面不允许旋转。

4、进行如下操作:
竖屏状态到2页面(portrait)
-> 将2页面旋转为横屏(landscape)
-> pop回1页面 或者 push到3页面
-> 神奇的事发生了,1、3页面本来是不允许横屏的,但是现在都变成了横屏,而这些页面都未做横屏适配,所以看起来很丑。

请教各路大神:从横屏的2页面到1、3页面时,怎么让1、3页面不旋转为横屏,保持进入2页面时的竖屏状态?
谢谢!!!!!
PS:这个问题我纠结2个月了,实在找不到合适的解决办法,调试发现:1、3页面的frame是在2页面调用pop或者push之后被改变的

  • 写回答

1条回答

  • ChrisyehGone 2015-08-12 09:16
    关注

    一般来说如果是横屏那就整个APP所有页面都是横屏,竖屏那就整个APP所有页面都是竖屏,遵循这个原则就不会遇到这个问题。
    你这个需求有点坑啊

    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题