viewWillAppear не вызывается для detailView UISplitViewController - PullRequest
3 голосов
/ 01 сентября 2010

Я экспериментирую с splitViewController, представленным для iPad, и застрял в точке. У меня есть кнопка в моем подробном представлении splitViewController, нажимая на которую открывается модальное представление. Теперь я хочу изменить расположение элементов управления пользовательского интерфейса в подробном представлении, когда модальное представление распускается.

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

Любые идеи ??

1 Ответ

2 голосов
/ 01 сентября 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...