一个关于锁屏的问题。
苹果的本意是好的:所有应用都应支持横竖屏切换;
问题是:现实就有那么一种客户“我只要横屏”;
使用UINavigationController的时候怎么都不能实现锁屏,尽管我注意了IOS5与IOS6的不同之处
ios5:(通过这个方法实现,但在ios6里这个方法不被调用了)
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
- return ( UIInterfaceOrientationIsLandscape( interfaceOrientation ) );
- }
- ios6:(尝试通过这两个方法实现,但没有效果)
- -(NSUInteger)supportedInterfaceOrientations{
- returnUIInterfaceOrientationMaskLandscape;
- }
- - (BOOL)shouldAutorotate
- {
- returnYES;
- }
- 效果是该横该竖我们说了不算。问题出在哪呢?
- [[UINavigationController alloc] initWithRootViewController:(UIViewController *)rootViewController];
- 然而window下一层是这个UINavigationController,苹果默认是自由切换,即使你把rootViewController千刀万剐,也改变不了自由切换。
- 解决 继承UINavigationController 重写以上支持IOS5和IOS6的锁屏代码;
- 不再细述,你明白怎么做了。
给自己的,IOS开发已不同于java WEB,思维要清洗!
但是留下面向对象思想!
只留思想,抛弃其他!
IOS要研究思想设计模式