如何在拆分视图中从主视图中显示ActionSheet

时间:2015-01-02 23:50:53

标签: ios uiactionsheet master-detail

我在针对iOS7的iPad应用中使用Xcode 6。它是一个主 - 详细应用程序,在主列表中的每个组标题视图上都有一个按钮。我想按钮显示一个ActionSheet。我在使用ActionSheet时遇到了麻烦。

为了让ActionSheet完全出现,我必须将它传递给SplitViewController的视图以显示自己:

UIActionSheet* menu = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:@“Button 1”, @“Button 2“, nil];
UIView* view = [[[self appDelegate] splitViewController] view];
[menu showFromRect:[sender convertRect:[sender bounds] toView:nil] inView:view animated:YES];

传递任何其他视图(例如TableView,组头或按钮)会生成一个异常,告诉我我正在尝试从断开连接的视图中显示ActionSheet。但是以这种方式显示ActionSheet允许主视图在响应者链中保持优先级(主要是):

  • 如果ActionView在屏幕左侧显示,则显示在主视图下方。只能看到主视图边缘右侧的部分。

  • 当显示ActionSheet时,如果我点击其中一个按钮,主视图会在屏幕外滑动,ActionSheet仍然存在,就好像我没有点击它一样。主视图消失后,点击一个ActionSheet按钮会调用该按钮的方法。

  • 当显示ActionSheet时,如果我在主视图中点击一个单元格,则没有任何反应。

  • 当显示ActionSheet时,如果我点击详细视图,主视图将在屏幕外滑动,显示ActionSheet。

我在断开连接的视图和ActionSheets上阅读了几篇SO帖子。表视图的window属性被定义为应用程序的窗口,所以我认为它在视图中是heirarchy。我没有在表视图或其控制器层次结构中找到可导致表视图变为“已连接”的属性。

似乎如果我能找到传递给ActionSheet的正确视图,它将纠正ActionSheet的行为。

有解决方案吗?

0 个答案:

没有答案