我有一个基于 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/