Как создать действие для UITabBarItem? - PullRequest
12 голосов
/ 25 марта 2010

Я создал UITabBar и UITabBarItems без UITabBarController, теперь я хочу знать, как разместить действие по щелчку UITabBarItem. Какой метод я должен использовать для действия над UITabBarItem?

Ответы [ 4 ]

23 голосов
/ 26 марта 2010

Вы не можете установить действие для объекта UITabBarItem напрямую. Вместо этого ваш контроллер представления должен реализовать следующий метод UITabBarDelegate:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;

Этот метод вызывается, когда пользователь выбирает вкладку (т.е. UITabBarItem).

2 голосов
/ 25 марта 2010

Используете ли вы UINavigationController? Если это так, то из подкласса активного контроллера представления вы получаете навигационный элемент и добавляете к нему кнопки, например ::

- (void) viewWillAppear:(BOOL)animated;
{
    [super viewWillAppear: animated];
    UIBarButtonItem * leftButtonItem = [[[UIBarButtonItem alloc] initWithTitle: @"Don't Show Again" style: UIBarButtonItemStyleBordered target: self action: @selector(permanentlyCloseWelcomeView)] autorelease];
    [[self navigationItem] setLeftBarButtonItem: leftButtonItem];
}
1 голос
/ 12 июля 2010

Можете ли вы использовать вместо этого экземпляры UIToolbar и UIBarButtonItem? Это может быть более простым.

toolBar = [[UIToolbar alloc] init];
newPlayerItem = [[UIBarButtonItem alloc] initWithTitle:@"+"
                                    style:UIBarButtonItemStyleBordered
                                    target:self
                                    action:@selector(newPlayer:)];

NSArray *toolBarItemsArray = [[NSArray alloc] initWithObjects:newPlayerItem, nil];
[toolBar setItems:toolBarItemsArray];
[toolBarItemsArray release];
0 голосов
/ 14 июня 2010

Есть лучший метод, чем didSelectItem: для каждого TabBarItem вы создаете действие: <br/> [item1 setAction:@selector(pressItem1:)];<br/> [item2 setAction:@selector(pressItem2:)];<br/> [item3 setAction:@selector(pressItem3:)];<br/> [item4 setAction:@selector(pressItem4:)];<br/> и тогда вы можете использовать новые действия:

-(void)pressItem1:(UITabBarItem *) item1 {<br/>
    // Here comes your code which<br/>
    // occurs after pressing item1.<br/>
}

Это работает для меня

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