objective-c - iOS 5.1 + PortraitMode 中的 UISplitViewController + MasterController 中的 UIActionSheet = 断言失败

标签 objective-c uisplitviewcontroller uiactionsheet ios5.1

我有一个基于 UISplitViewController 的应用程序,它在 Split 的 MasterViewController 中显示一个 ActionSheet。在 iOS 5.1 之前,我在拆分显示的弹出窗口中显示操作表没有问题,但现在,显示 MasterController 的新“滑入”方式显然有问题。

问题是,当我尝试使用任何 [actionSheet show..] 方法呈现 ActionSheet 时,应用程序崩溃并出现以下错误(确切的断言如下)。

*** Assertion failure in -[UIActionSheet presentSheetInPopoverView:], /SourceCache/UIKit_Sim/UIKit-1914.84/UIActionSheet.m:1816
sharedlibrary apply-load-rules all
Error in re-setting breakpoint 1:
Catchpoint 2 (throw)Error in re-setting breakpoint 1:
Error in re-setting breakpoint 1:
Current language:  auto; currently objective-c

我谷歌了一段时间,但没有实质性的答案..有人说这可能是 新的 SplitViewController...

想法?

提前致谢!

更新:我发布了一个可能的通用解决方法,请检查一下。如果它对你有用,请发表评论....如果没问题,我会在几天内将其标记为正确

最佳答案

基于以上所述,并且非常尊重在 WWDC 上帮助过我的 Apple 工程师,这里是一个解决方案,它不仅可以解决这个错误,而且还可以将弹出窗口指向右侧按钮。

    if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))
    {
        [actionSheet showFromBarButtonItem:self.actionSheetBarButtonItem animated:YES];
    } 
    else 
    {
        CGRect windowsRect = [self.navigationController.toolbar convertRect:self.actionSheetBarButtonItem.customView.frame toView:self.view.window];

        [actionSheet showFromRect:windowsRect inView:self.view.window animated:YES];
    }

关于objective-c - iOS 5.1 + PortraitMode 中的 UISplitViewController + MasterController 中的 UIActionSheet = 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727917/

相关文章:

ios - 具有许多项目的 UIActionSheet 覆盖文本

ios - UIAlertView 运行模式

ios - Objective C 触摸事件锁定

ios - 访问在 drawRect : method 中定义为 IBDesignable 的类的属性

iOS - 带有 Storyboard的 UISplitViewController - 多个主视图和多个详细 View

swift - 将图像和文本添加到操作表的警报按钮

ios - 在没有 MFMailComposeViewController 弹出窗口的情况下撰写电子邮件

iphone - 如何使用 CCCrypt() 加密文件?

uitableview - 如何将 RootViewController 设置为 SplitViewController 中的分组表

iOS:UISplitViewController 后退按钮设置查询