Какое событие UINavigationController можно переопределить, чтобы получить доступ к текущему контроллеру представления? - PullRequest
0 голосов
/ 12 декабря 2011

Какое событие UINavigationController можно переопределить, чтобы получить доступ к текущему контроллеру представления?

Моя конечная цель - проверить текущий экран в контроллере навигации, чтобы определить, следует ли вызывать SetNavigationBarHidden.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2011

Если под «текущим» вы подразумеваете «видимый в данный момент», вы можете использовать свойство VisibleViewController для UINavigationController. Хотя, если вы используете MT.D, вы захотите разыграть его:

var currentViewController = (DialogViewController)myNavController.VisibleViewController

В качестве альтернативы вы можете получить доступ к массиву ViewController напрямую. Или ... вы также можете создать подкласс DialogViewController и установить NavigationBar.Hidden = true внутри реализации.

0 голосов
/ 12 декабря 2011

Как насчет того, чтобы подкласс UINavigationController принял протокол UINavigationControllerDelegate? Затем реализуйте однообъемный эквивалент navigationController: willShowViewController: animated: или navigationController: didShowViewController: animated :. Каждый из этих методов передает параметр, который является указателем на «[t] контроллер представления, свойства представления и элементов навигации которого отображаются». Вы должны будете помнить, чтобы сделать контроллер навигации своим собственным делегатом.

...