получить доступ к UINavigationController из подкласса UINavigationBar - PullRequest
0 голосов
/ 09 октября 2011

У меня есть подкласс UINavigationBar, возможно ли каким-то образом из этого UINavigationBar получить мой UINavigationController?

1 Ответ

0 голосов
/ 09 октября 2011

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

Обратите внимание, что UINavigationBar не имеет дело с контроллерами (должно быть наоборот), скорее он имеет дело с UINavigationItem, которые будут выглядеть по-разному в зависимости от того, находятся ли они на вершине стека навигации. или нет.

Существует трюк , чтобы сделать вашу пользовательскую панель навигации свойством navigationBar контроллера навигации вашего контроллера представления. Обычно это свойство только для чтения. Но вы можете поместить его в свой контроллер навигации в Интерфейсном Разработчике в XCode, а затем изменить имя класса в инспекторе на свой пользовательский класс . После этого вы сможете обращаться к своей панели с помощью обычного self.navigationController.navigationBar из контроллера представления.

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