получение UINavigationController в UIView - PullRequest
       2

получение UINavigationController в UIView

1 голос
/ 26 сентября 2011

Используемый мной пользовательский контроллер панели вкладок применяет ViewController или UINavigationController следующим образом: UIViewController* viewController = [data objectForKey:@"viewController"];

Я не знаю точно, как это работает, но "viewController" выходит как UINavigationController. Далее, пользовательский класс контроллера панели вкладок добавляет тег вроде viewController.view.tag = THE_TAG;

Для извлечения используется контроллер UIView* currentView = [self.window viewWithTag:SELECTED_VIEW_CONTROLLER_TAG];

В этой части я запутался, потому что теперь, когда я пишу это "currentView" Я получаю UILayout и т. д ... вместо моего UINavigationController. Я предполагаю, что он применил тег к UIView, который содержал контроллер nav?

Как мне ссылаться на UINavigationController в этом UIView?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2011

Кажется, что у вас view и viewController в замешательстве.UINavigationController является подклассом UIViewController.Это не подкласс UIView.UIViewControllers действительно имеют свойство, которое является классом UIView.Вероятно, к этому свойству вы обращаетесь, когда используете viewWithTag:.Так что, возможно, когда вы используете этот метод, вы обращаетесь не к UINavigationController, а к свойству view UINavigationController (с которым на самом деле не стоит возиться).

0 голосов
/ 26 сентября 2011

В приведенном выше, что такое THE_TAG, и можете ли вы подтвердить, что оно уникально (то есть не равно нулю и не соответствует чему-то, что используется в другом месте тем же механизмом)?

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

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