Ответ 1
Попробуй, это сработало для меня отлично:
[actionSheet showInView:[UIApplication sharedApplication].keyWindow];
Когда я запускаю свое приложение, и я нажимаю кнопку для листа действий, это выглядит следующим образом:
Представление файла действия, обрезанного его надстройкой. Некоторые элементы управления могут не реагировать на касания. На iPhone попробуйте - [UIActionSheet showFromTabBar:] или - [UIActionSheet showFromToolbar:] вместо - [UIActionSheet showInView:].
Как я могу исправить?
Попробуй, это сработало для меня отлично:
[actionSheet showInView:[UIApplication sharedApplication].keyWindow];
Вы можете попробовать [MyActionSheet showInView:super.view];
, или если у вас есть UITabBar или UIToolbar, то, как это предлагает, вы можете использовать [MyActionSheet showFromTabBar:self.tabBarController.tabBar];
или [MyActionSheet showFromToolBar:self.toolbar];
Следует использовать [actionSheet showInView:self.parentViewController.view];
вместо self.view
, если вы используете UINavigationViewController
, потому что этот контроллер имеет верхнюю панель навигации по умолчанию.
[sheet showInView:[UIApplication sharedApplication].keyWindow];
sheet.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height-sheet.frame.size.height, [UIScreen mainScreen].bounds.size.width, sheet.frame.size.height);
Это должно решить проблему.
Я разрешил почти тот же случай:
YourAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[actionSheet showFromTabBar:delegate.tabBarController.tabBar];
Предположим, что в качестве запуска используется шаблон xBode TabBarController.
Помните, что ваша панель инструментов может быть частью вашего навигационного контроллера. Вы можете получить к нему доступ с помощью self.navigationController.toolbar
Другим аналогичным решением, которое работало для меня с помощью структуры UIPageViewController → UINavigationViewController → TableViewController, является:
[actionSheet showInView:self.view.superview];
Используйте это:
[actionSheet showInView:self.view.window];
Это заставит панель действий отобразиться над навигационными панелями и будет реагировать на все краны. Однако обратите внимание, что если вы используете несколько библиотек скользящих меню влево/вправо, это может привести к тому, что файл actionsheet будет представлен с экрана. Просто проверьте...
Я попробовал все вышеперечисленные ответы безрезультатно. В конечном счете, я обнаружил, что единственным решением было уменьшить количество элементов на листе действий, которое было переполнено.
Вот версия Swift:
actionSheet.showInView(UIApplication.sharedApplication().keyWindow)