Повторное нажатие в UITabBarItem

Есть ли способ дать действие повторному щелчку UITabBarItem? Я хочу вернуться к начальному экрану моего приложения при повторном щелчке элемента панели вкладок. Я использую UITabBarController с UITabBar и UITabBarItens. В моем приложении есть список представлений с элементами управления вперед и назад. Я хочу, чтобы UITabBarItem действовал как домашняя кнопка.


person flopes    schedule 22.08.2011    source источник
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
comment
Я использую UITabBarController с UITabBar и UITabBarItens. В моем приложении есть список представлений с элементами управления вперед и назад. Я хочу, чтобы UITabBarItem действовал как домашняя кнопка. - person flopes; 22.08.2011
comment
Рассмотрите возможность использования UINavigationController внутри панели вкладок. В противном случае вам, возможно, придется переопределить некоторые частные методы или что-то еще, чтобы это работало правильно. - person jtbandes; 22.08.2011
comment
@flopes: на самом деле, я думаю, вы можете сделать это с помощью методов делегата. См. Мой обновленный ответ. - person jtbandes; 22.08.2011
comment
Спасибо!! Протокол 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
comment
Спасибо за дополняющий ответ @jtbandes. - person flopes; 23.08.2011