我知道在iOS 8中不推荐使用UIActionSheet
,但我仍然需要API,因为我仍在使用iOS 7。
所以这就是问题所在:我的应用支持手机设备UIInterfaceOrientationPortrait
和UIInterfaceOrientationPortraitUpsideDown
。当我的应用以正常纵向方向显示UIActionSheet
时,一切都很好。但是,如果将设备倒置,则操作表也会颠倒显示,如下所示:
只有当应用程序在iOS 8的设备(或模拟器)上运行时才会出现问题。当应用程序在iOS 7.1的模拟器中运行时,问题就消失了(我还没有真正的设备iOS 7.1进行测试)。当我的应用程序仍然使用iOS 8之前的SDK构建时,即使应用程序在iOS 8设备上运行,也不会出现问题。
有没有人建议我在这里做错了什么?请参阅下面的代码段,以获取重现问题的最小示例。我使用Xcode 6.1.1和iOS SDK 8.1进行编码。我保证我没有以任何方式摆弄Xcode应用程序包: - )
重现问题的步骤
doIt:
的方法添加到第一个响应者最后,将以下代码添加到ViewController.m
:
- (void) doIt:(id)sender
{
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"sheet title"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
[actionSheet addButtonWithTitle:@"sheet action"];
[actionSheet showInView:self.view];
}
// This override is required so that interface orientation
// to UIInterfaceOrientationPortraitUpsideDown is possible
- (NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
运行应用程序,旋转并点按按钮,您应该看到我的意思。
答案 0 :(得分:1)
在ios 8中,我认为你最好使用UIAlertController。处理这个奇怪的案子会更好。