我想在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];
我想知道警告信息很重要吗?
或者我可以忽略这些警告信息吗?
答案 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等的麻烦。此外,它应该修复警告信息。