2010-09-01 3 views
3

Я экспериментирую с splitViewController, представленным для iPads и застрявшим в точке. У меня есть кнопка на моем подробном представлении splitViewController, щелкнув по которой открывается модальный вид. Теперь я хочу изменить позиционирование элементов управления пользовательского интерфейса на подробном представлении, когда модальное представление будет опротестовано.viewWillAppear не получает вызов для detailView UISplitViewController

Довольно очевидным способом сделать это было бы уловить переход вида в методе ViewWillAppear detailView. Но в этом случае это не называется. Я помню, что столкнулся с той же проблемой в tabBarController, где [tabBarController viewWillAppear: анимированный] необходимо было установить перед представлением ViewWillAppear представлений в каждом вызванном элементе табуляции. Я попытался сделать это с помощью splitViewController, но это, похоже, не работает.

Любые идеи ??

ответ

2

Если позиционирование требуется из-за действия, которое произошло в модальном представлении, вы должны использовать явный ответный вызов делегата. Это позволит вам четко определить поток управления и результирующее поведение вашего приложения.

Затем вы должны определить протокол, который имеет конкретные методы, которые содержат соответствующую информацию о предпринятых действиях. Когда действие происходит в модальном режиме, выполните метод протокола на делетете, и он может реагировать на это событие (для вас это, похоже, повторная компоновка позиционирования кнопок).

Чтобы получить представление о методах, которые достаточно абстрактны для обработки общего модального поведения, посмотрите на протокол UIAlertViewDelegate. Здесь делегат получит сообщение alertViewCancel:, когда пользователь решит не предпринимать никаких действий, или alertView:didDismissWithButtonIndex:, когда они выбрали один из представленных им вариантов.

Это хорошее начало для определения протокола.

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