- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的 iOS 应用程序似乎有问题。
它的部署目标是 iOS5.0,但是我使用的是 iOS 6.0 SDK。
在我的 View Controller 中我有:
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationMaskPortrait;
}
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
这在 iOS5 模拟器中运行时工作正常。 View 不会旋转到 LandScape 或上下颠倒。
然而,在 IOS6 模拟器(和设备上)中,它会继续旋转。
我已经使用 NSLog
来检查 -supportedInterfaceOrientations
确实被调用了,它调用了两次,但是它仍然旋转到 LandScape(向右或向左)
我做错了什么?
我还扩展了 UINavigationController
(我的 Root View Controller )以包含以下内容:
@implementation UINavigationController (Rotation_IOS6)
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end
但仍然没有成功。
根据马特的回答。我还需要使用与我的 UINavigationController 类似的实现来扩展 UITabBarController,这很有效。
最佳答案
问题可能是您有一个导航界面。你?如果是这样,您需要子类化 UINavigationController 并使用该子类的实例作为您的导航 Controller 。在该子类中,that 是您实现 supportedInterfaceOrientations
的地方。对于任何父 View Controller (例如 UITabBarController)也是如此。
原因是 iOS 6 考虑旋转的方式完全与 iOS 5 不同。您认为您从 iOS 5 中了解的任何内容都不再适用。在 iOS 6 中,我们从应用程序本身的级别开始,通过应用程序委托(delegate)到 Root View Controller 或其他全屏 View Controller (例如呈现的 View Controller ),然后停止 . parent 不再咨询 child 。
此外,应用程序本身(通过 info.plist 或应用程序委托(delegate))必须列出应用程序的任何部分可以每个方向 假设; View Controller 只能请求其中的一个子集。
查看发行说明:
http://developer.apple.com/library/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html
但是请注意,这句话是个谎言:
For compatibility, view controllers that still implement the shouldAutorotateToInterfaceOrientation: method do not get the new autorotation behaviors
相反,在 iOS 6 中,旧的自动旋转方法被完全忽略;每个人都会获得新的自转行为。这不是“选择加入”。
关于iOS6 方向仍在旋转,即使被告知不要旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13755816/
有没有办法判断 Android 设备何时处于 sleep 模式?测试我的应用程序时,我按电源按钮关闭屏幕,需要等到 sleep 模式激活。然后,我使用 Google Cloud Messaging (
我想弄清楚如何查询一个表(该表实际上是一个结果集,所以它将是一个子查询),按 ColA=ColB 对其进行分组(见下文),并一步创建一个计算字段。 所以,如果我的测试数据看起来像 可乐 可乐 可乐 1
我是一名优秀的程序员,十分优秀!