iOS中的UIActionSheet警告消息

时间:2013-07-12 14:15:41

标签: ios cocoa-touch uiactionsheet

我想在iOS中UIActionSheet显示UINavigationController

当我使用[action showInView:self.view];时,他们会向我显示警告信息,如下所示。

Presenting action sheet clipped by its superview. Some controls might not respond to touches. On iPhone try -[UIActionSheet showFromTabBar:] or -[UIActionSheet showFromToolbar:] instead of -[UIActionSheet showInView:].

然而,UIActionSheet显示正确且没有任何反应。

在我的iOS中,我支持横向模式,如下面的代码。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.0 ||
        UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation])) {
        [action showInView:self.view];
    } else {
        [action showInView:self.view.window];

我想知道警告信息很重要吗?

或者我可以忽略这些警告信息吗?

2 个答案:

答案 0 :(得分:6)

您的导航控制器是否显示工具栏?如果是这样,行动表的底部44点可能不会响应。要解决此问题,请使用[action showFromToolbar:self.navigationController.toolbar](就像错误消息所示)。

如果您的导航控制器位于标签栏中,则同样适用,但您应使用[action showFromTabBar:self.tabBarController.tabBar]

答案 1 :(得分:1)

我建议您使用:

UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if(UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
  [action showInView:[UIApplication sharedApplication].keyWindow];
} else {
  [action showInView:[self.navigationController view] ];      
}

它将为您节省UITabBarController等的麻烦。此外,它应该修复警告信息。