iOS 8 iPad 只有 bug 与行动床单

标签: Xcode ios
发布时间: 2017/3/28 21:25:37
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

关于 iPhone 运行 iOS 8,下面的代码导致弹出一项action sheet。然而,在 iPad 上运行 iOS 8 下面的代码不会导致一项action sheet,弹出,相反什么也没有发生。

NSUserDefaults *defauj = [NSUserDefaults standardUserDefaults];
NSArray *cod = [defauj objectForKey:@"customlistofstuff"];

UIActionSheet* actionSheet = [[UIActionSheet alloc] init];
actionSheet.delegate = self;
for(int i=0;i<[cod count];i++)
{
    [actionSheet addButtonWithTitle:[cod objectAtIndex:i]];
}
actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"None"];
[actionSheet showInView:[UIApplication sharedApplication].keyWindow];

解决方法 1:

试试这个︰

[actionSheet showInView:[UIApplication sharedApplication].keyWindow.rootViewController.view];

它看起来像你不能对目前action sheet UIWindow s 直接了,你要它们呈现在由视图控制器,因此根视图控制器视图非常适合这实际视图。

我认为这已不是以事实, UIActionSheet 已被弃用 (和你不能只是神奇地切换到 UIAlertController 只是还没有,如果您需要支持 iOS 7),和更多的是他们的演示文稿的方式在底层实现中处理 — — 我猜它现在依赖于工作表显示在视图控制器的视图这是不真实的 windows。

编辑︰ 如果你有超过顶部的根视图控制器提交窗体的视图控制器,这显然不会工作作为根视图控制器视图是不再可见。您将需要在视图当前可见,例如当前的视图控制器的当前工作表 ( self.view )。

官方微信
官方QQ群
31647020