настроить действие с элементом панели вкладок - iphone - PullRequest
5 голосов
/ 28 сентября 2011

Нет, если это возможно, но есть ли способ обработать щелчок элемента панели вкладок обычным нажатием кнопки (действие)? Вот причина: у меня в приложении есть панель вкладок, и для большинства элементов панели вкладок я не меняю экран при прикосновении, но я изменяю данные, отображаемые в представлении. Похоже, было бы немного за борт использовать TabBarAppDelegate для этого ... есть ли лучший способ?

Спасибо

Ответы [ 3 ]

14 голосов
/ 28 сентября 2011

Самый простой способ - UITabBarDelegate. Сожалею. Реализуйте свой класс и наследуйте протокол, добавив <UITabBarDelegate> после определения вашего класса, например ::100100

@interface MyViewController : UIViewController<UITabBarDelegate>

и затем определите метод tabBar:didSelectItem: в этом классе, например

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    // Do Stuff!
    // if(item.title == @"First") {...}
}

Затем установите делегата на вашей вкладке следующим образом: myTabBar.delegate = myClassInstance. Метод tabBar:didSelectItem: может быть где угодно, включая ваш контроллер представления, и именно там вы получите событие, когда была нажата кнопка. Больше информации здесь:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITabBarDelegate_Protocol/Reference/Reference.html

3 голосов
/ 28 сентября 2011

Лично я бы использовал UISegmentedControl и поместил бы его в UIToolbar или UINavigationBar.Таким образом, вы получаете тот же эффект touch-to-change-data, но вам не нужно менять контроллеры представления (или пытаться обходить переключение вкладок)

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

Я бы предложил пойти с UIToolbar.Или создайте свой собственный UIView и создайте его по своему вкусу

...