Есть ли способ дать действие повторному щелчку UITabBarItem? Я хочу вернуться к начальному экрану моего приложения при повторном щелчке элемента панели вкладок. Я использую UITabBarController с UITabBar и UITabBarItens. В моем приложении есть список представлений с элементами управления вперед и назад. Я хочу, чтобы UITabBarItem действовал как домашняя кнопка.
Повторное нажатие в UITabBarItem
comment
Это не было бы интуитивно понятным действием для пользователя.
- person Evan Mulawski   schedule 22.08.2011
comment
@Evan Mulawski: на самом деле это стандартное поведение iOS.
- person jtbandes   schedule 22.08.2011
comment
@jtbandes: Правда? Я никогда не видел и не использовал эту функцию.
- person Evan Mulawski   schedule 22.08.2011
comment
@ Эван Мулавски: ага. Например, попробуйте перейти в приложение «Телефон» на вкладку «Контакты», затем коснитесь имени, чтобы развернуть его, затем снова коснитесь вкладки «Контакты».
- person jtbandes   schedule 22.08.2011
comment
@jtbandes: Итак, он возвращает пользователя к корневому контроллеру или просто возвращается к нему?
- person Evan Mulawski   schedule 22.08.2011
comment
Это единственный контроллер с разными представлениями внутри него.
- person flopes   schedule 22.08.2011
comment
@ Эван Мулавски: он восходит к корню.
- person jtbandes   schedule 22.08.2011
comment
В моем приложении есть UITabBarController, который вызывает UIViewControllers. Эти контроллеры обрабатывают список представлений, управляемых с помощью UINavigationBar.
- person flopes   schedule 22.08.2011
Ответы (3)
Это поведение предоставляется вам автоматически, если вы используете UINaviationController: когда вы «повторно щелкаете» вкладку, она переходит к корневому контроллеру представления.
Другой вариант - реализовать протокол UITabBarDelegate или UITabBarControllerDelegate и выполнять действие при нажатии на вкладку.
person
jtbandes
schedule
22.08.2011
Я использую UITabBarController с UITabBar и UITabBarItens. В моем приложении есть список представлений с элементами управления вперед и назад. Я хочу, чтобы UITabBarItem действовал как домашняя кнопка.
- person flopes; 22.08.2011
Рассмотрите возможность использования UINavigationController внутри панели вкладок. В противном случае вам, возможно, придется переопределить некоторые частные методы или что-то еще, чтобы это работало правильно.
- person jtbandes; 22.08.2011
@flopes: на самом деле, я думаю, вы можете сделать это с помощью методов делегата. См. Мой обновленный ответ.
- person jtbandes; 22.08.2011
Спасибо!! Протокол UITabBarControllerDelegate мне подходит.
- person flopes; 22.08.2011
Его значение по умолчанию в реализации контроллера UINavigation. Если у вас есть UINavigationController и коснитесь значка на панели вкладок, он будет отображать контроллеры представления, пока не достигнет корня, при условии, что контроллер навигации является дочерним и является одним из контроллеров элемента панели вкладок.
person
Arvin Am
schedule
22.08.2011
Вы должны реализовать UITabBarControllerDelegate
- (void)tabBarController:(UITabBarController*)tabBarController didSelectViewController:(UIViewController*)viewController
{
if (tabBarController.selectedViewController == viewController)
{
tabBarController.selectedIndex =0;
}
}
Это должно помочь.
Привет, нетц
person
nettz
schedule
22.08.2011
Спасибо за дополняющий ответ @jtbandes.
- person flopes; 23.08.2011