Ios 操作表未正确显示

Ios 操作表未正确显示,ios,uiactionsheet,Ios,Uiactionsheet,我有这段代码从NSMutableArray的NSDictionary中获取NSString,但问题是它没有正确显示。 代码如下: UIActionSheet *playingSheet = [[UIActionSheet alloc] initWithTitle:@"Hi" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil]; for(NSDictionary *di

我有这段代码从NSMutableArray的NSDictionary中获取NSString,但问题是它没有正确显示。 代码如下:

UIActionSheet *playingSheet = [[UIActionSheet alloc] initWithTitle:@"Hi" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
     for(NSDictionary *dict in accounts) {
         NSString *name = [dict objectForKey:@"Name"];
         [playingSheet addButtonWithTitle:name];
     }
     [playingSheet showInView:self.view];
     [playingSheet release];
在我的例子中,问题是self.view是parentView的子视图,它是从XIB加载的,不是全屏的。所以问题是,我的行动表就像iPhone屏幕的一半宽,甚至连屏幕底部都没有。 在我的例子中,我如何修复它,使其成为最顶端的视图,以便用户能够正确地看到它,以及常规操作表的外观

谢谢

编辑:这是修复程序:

[playingSheet showInView:[UIApplication sharedApplication].keyWindow];

根据代码的设置方式,您可以尝试使用self.parentViewController.view、self.view.window、self.view.superview或任何其他功能。如果您想要更详细的答案,您需要提供更多信息。

您需要将行动表的框架设置为

[playingSheet setFrame:CGRectMake(0, theHeightYouWant, 320, yourDesiredHeight)];

您想要的高度是您必须向上/向下移动操作表以将其置于屏幕上正确位置的高度。你可以通过反复试验来改变这一点。例如,如果您的self.view位于屏幕的下半部分,则您想要的高度将为负值

这三个人都不管用。它在控制台SIGABRT中抛出此错误:**由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效参数不满足:视图!”没有,我还应该尝试什么***我不知道,因为我不知道你的应用程序是如何设置的。不知道如果按钮数量每次都改变,我将如何设置操作表的高度。已修复:[播放表显示视图:[UIApplication sharedApplication].keyWindow];很好,我不知道这条路!!无论如何,你可以让你的期望高度随着按钮的数量而变化,每个按钮都会给你的期望高度增加一个特定的数值。和你想要的高度一样。@tipycalFlow,你好!我使用showFromBarButtonItem方法来显示动作表,但动作表箭头未水平居中,并带有条形按钮的中心,如何解决此问题?@gaussblurinc很抱歉,我无法从您所写的内容中想象您的问题。请以新问题的形式发布您的查询,并附上描述问题的图片: