нажатие на стек навигации не в навигационном контроллере - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть этот класс объявлений, который содержит UIImageView.Я добавил экземпляр класса в мой appdelegate в представлении «окна».

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

Возможно, я должен просто добавить свой класс рекламы в каждый контроллер представления для каждого контроллера навигации.Однако, если пользователь выдвигает или изменяет контроллер представления, он сбрасывает класс.

Я просто хочу наложить объявление один раз.

РЕДАКТИРОВАТЬ:

Позвольте мне перефразировать, я могу из делегата приложения и из моего объекта знать, какой элемент панели вкладок выбран?Если я могу определить, какой элемент панели вкладок выбран, я могу указать на соответствующий экземпляр контроллера Nav.

Ответы [ 2 ]

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

Самым простым способом было бы представить ваш DetailVC как ModalView, который также имеет смысл в семантике.

Да, можно определить, какая вкладка выбрана, но проще использовать selectedViewController -обладание UITabBarController.

UIViewController *curVC = myTabBarController.selectedViewController;
if([curVC isKindOfClass:UINavigationController.class])
{
    UINavigationController *nav = (UINavigationController*)curVC;
    [nav push...];
}
else
{
    // do sth else: go to webpage for instance
}
0 голосов
/ 26 сентября 2011

Кто владеет контроллером панели вкладок, может сделать

[myTabBarController selectedIndex];

или

[myTabBarController selectedViewController];

Первый возвращает индекс выбранного элемента, второй - фактический контроллер вида, вам может быть лучше с первым.

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