Управление действиями TabBar при динамическом изменении TabBar - PullRequest
1 голос
/ 03 февраля 2011

Мне интересно, как я могу управлять вкладками, поскольку они динамически меняются.

Например.На главном экране у меня есть 4 вкладки.Когда я нажимаю на 2-й вкладке.Теперь у меня будет 5 разных вкладок.Я знаю, как добавлять их динамически, но у меня возникают проблемы с управлением тем, что происходит, когда на них нажимают.

Например, Главный экран - моя первая вкладка.

if (viewController == [self.tabBarController.viewControllers objectAtIndex:0]){

Это будет обрабатывать мои действия для первой вкладки, но когда я меняю свои вкладки, когда нажимаю на вторую вкладку, я не хочу, чтобы моя первая вкладка была первой домашней страницей из моего первого наборавкладки.Есть ли способ управлять кликом по вкладкам по идентификатору, а не по номеру индекса?Другой пример - моя функция выхода из системы - это вкладка 4 в первом наборе и вкладка 5 во втором наборе.Я не хочу, чтобы 4-я вкладка во втором наборе выходила из системы, и в настоящее время она вызывает чтение индекса.

1 Ответ

2 голосов
/ 03 февраля 2011

Майк, мне кажется, ты слишком много просишь за UITabBar. Однако я был в вашей ситуации, когда клиенту нужна динамическая панель вкладок. Делегация - ваш лучший друг в этом случае.

UITabBarDelegate:

– tabBar:willBeginCustomizingItems:
– tabBar:didBeginCustomizingItems:
– tabBar:willEndCustomizingItems:changed:
– tabBar:didEndCustomizingItems:changed:
– tabBar:didSelectItem:  required method

UITabBarControllerDelgate

Managing Tab Bar Selections
– tabBarController:shouldSelectViewController:
– tabBarController:didSelectViewController:
Managing Tab Bar Customizations
– tabBarController:willBeginCustomizingViewControllers:
– tabBarController:willEndCustomizingViewControllers:changed:
– tabBarController:didEndCustomizingViewControllers:changed:

это позволит вам управлять действиями, которые будут выполняться, когда что-то будет на панели вкладок.

Также вы можете изменить значок на панели вкладок, не удаляя его, изменив элемент панели вкладок на контроллере представления

UIViewController * controller =     [myTabBarController.tabBar.items objectAtIndex:kObjectIndex];

UIImage *someImage = [UIImage imageNamed:@"some_icon_on.png"];

UITabBarItem *someTabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString (@"SomeTabBarTitle",@"") image:someImage tag:kObjectIndex];


controller.tabBarItem = someTabBarItem;

Надеюсь, это поможет вам. Желаем удачи!

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