Я программирую приложение в target c для Iphone/Ipad. У меня есть некоторые элементы в «больше» на вкладке. Я хочу переключиться на одно из этих представлений. Как мне это сделать? Обычно я бы использовал selectedIndex, но он не работает на вкладке «Дополнительно».
Как переключиться на элемент панели вкладок в представлении «Дополнительно»?
Ответы (2)
Чтобы выбрать контроллер представления на большем экране, вы должны сначала выбрать больше контроллера представления, как это отображалось в предыдущем ответе:
[tabBarController setSelectedViewController: [tabBarController moreNavigationController]]
А затем выполните метод pushViewController для большего количества контроллеров просмотра.
[[tabBarController moreNavigationController] pushViewController:neededViewController animated:NO]
Или используйте лучший способ:
[tabBarController setSelectedViewController: neededViewController ]
person
Max Ivashkevich
schedule
26.03.2013
как найти нужный ViewController? Если я создаю новый (Home *homeView = [[Home alloc] init]; [tabBarController setSelectedViewController: homeView ];), xcode во время выполнения сообщает мне о завершении приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «-[UITabBarController setSelectedViewController: ] можно выбрать только контроллер представления в списке контроллеров представления на панели вкладок. Home — это контроллер представления, управляемый панелью uitabbar.
- person Sasha Grievus; 27.03.2013
Вы можете выбрать выбранный контроллер представления, только если он содержится в массиве tabBarController.viewControllers. [tabBarController setSelectedViewController:[tabBarController.viewControllers objectAtIndex:neededIndex]]
- person Max Ivashkevich; 27.03.2013
Спасибо! Этот код работает отлично! Могу ли я попросить вас добавить его (изменив на ваше усмотрение) к вашему ответу, чтобы сделать его более полным? [tabBarController setSelectedViewController: [tabBarController.viewControllers objectAtIndex:7]];
- person Sasha Grievus; 27.03.2013
[myTabBarController setSelectedViewController: viewControllerThatYouNeed];
Изменить:
Попробуйте использовать свойство selectedViewController UITabBarController. Из документов Apple:
Blockquote В iOS 3.0 и более поздних версиях это свойство можно использовать для выбора любого из контроллеров представления в свойстве viewControllers. Сюда входят контроллеры представлений, которые управляются контроллером навигации «Дополнительно» и элементы панели вкладок которых не отображаются на панели вкладок.
person
Dmitry Zhukov
schedule
26.03.2013
это приводит к большему количеству просмотров. если я хочу перейти к элементу, который находится внутри дополнительного представления?
- person Sasha Grievus; 26.03.2013
я не могу получить код для выбора правильного контроллера представления. Если я создам новый (Home *homeView = [[Home alloc] init]; [tabBarController setSelectedViewController: homeView];) xcode во время выполнения сообщает мне о прекращении работы приложения из-за необработанного исключение 'NSInvalidArgumentException', причина: '-[UITabBarController setSelectedViewController:] можно выбрать только контроллер представления в списке контроллеров представления панели вкладок. Home — это контроллер представления, управляемый панелью uitabbar.
- person Sasha Grievus; 27.03.2013