UIActionSheet предупреждение в iOS
Я пытаюсь показать UIActionSheet
от UINavigationController
в iOS
Когда я использую [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 ответа
Ваш навигационный контроллер показывает панель инструментов? Если это так, нижние 44 пункта листа действий, скорее всего, не будут отвечать. Чтобы решить эту проблему, используйте [action showFromToolbar:self.navigationController.toolbar]
(так же, как говорится в сообщении об ошибке).
То же самое относится, если ваш навигационный контроллер находится в панели вкладок, но тогда вы должны использовать [action showFromTabBar:self.tabBarController.tabBar]
,
Я бы порекомендовал вам использовать:
UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if(UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
[action showInView:[UIApplication sharedApplication].keyWindow];
} else {
[action showInView:[self.navigationController view] ];
}
это избавит вас от многих проблем с UITabBarController и т. д. Также следует исправить предупреждение.