动态更改TabBar时管理TabBar操作

时间:2011-02-03 16:11:09

标签: iphone uitabbarcontroller

我想知道如何动态更改标签。

例如。在我的主屏幕上,我有4个标签。当我单击第二个选项卡时。我现在将有5个不同的标签。我知道如何动态添加它们但是我很难管理点击它们时会发生什么。

例如,主屏幕是我的第一个标签。

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

这将处理我对第一个标签的操作,但是当我单击第二个标签时更改标签时,我不希望我的第一个标签成为第一个标签页中的第一个主页。有没有办法按标识管理标签栏而不是按索引号管理?另一个例子是我的注销功能是第一组中的tabbar 4和第二组中的tab 5。我不希望第二组中的第4个选项卡退出,目前它确实会导致它读取索引。

1 个答案:

答案 0 :(得分:2)

迈克,在我看来,你对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;

我希望这会对你有所帮助。祝你好运!