Iphone UINavigationController onchange событие - PullRequest
0 голосов
/ 13 января 2010

У меня есть приложение, которое использует навигационную панель.То, что я хочу сделать, это сделать его прозрачным, когда я нажимаю последний вид из последовательности навигации, и сделать его непрозрачным, когда я нажимаю кнопку «Назад» на навигационной панели

, с которой я пытался работать на dealoc, но это не такт работа.Мой взгляд - это UIScrollView, а не UiView, но я думаю, что это не имеет значения.

На мой взгляд, мне нужно контролировать события на панели навигации и видеть тип представления с помощью циклаили вызвать какое-либо событие при «выгрузке» моего текущего представления

, когда я нажимаю на представление, я делаю self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

и когда он появляется, мне нужно

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

Ответы [ 3 ]

1 голос
/ 13 января 2010

Нажатие и извлечение представления с помощью UINavigationController или UITabController вызовет представление {Will, Did} {Появляются, Исчезают} методы, поэтому я думаю, что вам нужно подключиться к дочернему представлению ViewWillDisappear.

Я бы разработал его так, чтобы контроллер навигации верхнего уровня устанавливал себя в качестве дочернего делегата, а дочерний процесс вызывал свой delgate с помощью функции типа «Я разгружаюсь», когда вы меняете стиль панели навигации.

1 голос
/ 20 марта 2014

На самом деле лучший способ для этого - использовать UINavigationControllerDelegate. Я расширил UINAvigationController и установил для делегата self и использовал один из методов протокола UINavigationControllerDelegate.

0 голосов
/ 13 января 2010

Вы не можете полагаться на то, что колллока когда-либо будут вызывать, тем более, когда вы этого захотите. Это должно использоваться только для освобождения сохраненных объектов.

Я думаю, вы должны иметь возможность добавлять изменения barStyle в методы viewDidAppear и viewDidUDisappear вашего контроллера представления.

...