Представление UIActionSheet от дочернего UIViewController

Контроллер моего контейнера представляет серию подпредставлений, каждое из которых имеет свои UIViewController, Мне нужно показать UIActionSheet когда нажата кнопка на одном из этих дочерних видов.

Как правильно отобразить этот лист действий на панели инструментов контроллера родительского представления? Предоставляет ли новая поддержка контроллера представления контейнера iOS 5 простой способ сделать это? Или я должен использовать делегирование, чтобы контроллер контейнера знал, что кнопка была нажата?

2 ответа

Я не очень опытный в этом вопросе, но не могли бы вы просто пройти parentViewController свойство как делегат UIActionSheet? И при представлении листа действий, передать свойство parentViewControllerНапример, его вид или панель инструментов?

Тем не менее, с технической точки зрения мне больше нравится ваша идея использовать делегирование. Казалось бы странным читать код для контроллера представления, выступающего в роли делегата для UIActionSheet, но не имея представления, почему он был отображен в первую очередь.

У меня были такие же проблемы в topViewController (называется FavoritosViewController) контейнера ViewController.

Прежде чем реализовать контейнер ViewController, я использовал FavoritosViewController в UITabBarViewController; и показал UIActionSheet из панели вкладок, используя метод:[actionSheet showFromTabBar:self.tabBarController.tabBar];

Когда я изменил структуру проекта, чтобы использовать контейнер ViewController вместо tabBar, он потерпел крах. Но скорее всего из-за того, что сейчас не было таббара. Он работает правильно, заменив этот метод на предыдущий:[actionSheet showInView:self.view];

Надеюсь быть полезным. С новым годом.

Другие вопросы по тегам