如何以编程方式将tabBarItem链接到viewController(iPhone,iOS)

时间:2013-03-25 17:17:01

标签: ios objective-c uiviewcontroller uitabbarcontroller uitabbaritem

我有一个使用登录系统的应用程序。如果用户成功登录,我希望tabBarController在运行时动态更改!我有5个标签(Accueil,Tous les Voyants,Inscription,Connexion,Aide)。

当用户点击登录按钮时,我想将Inscription更改为Achat Jetons和Connexion更改为Profile,并将另一个ViewController链接到这两个tabBarItems!

现在,我已成功设法替换标签栏的标题和图片徽标。但我不知道如何将viewControllers链接到它们!这就是我现在所得到的:

- (IBAction)BTN_ConnexionClick:(id)sender {
UITabBarController *tabBarController = (UITabBarController *)self.tabBarController;
UITabBar *tabBar = tabBarController.tabBar;

UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:2];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:3];

[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"menu_iOS_achat.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"menu_iOS_achat.png"]];
[tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:@"menu_iOS_profile.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"menu_iOS_profile.png"]];

tabBarItem1.title = @"Achat Jetons";
tabBarItem2.title = @"Profile";

}

我通过StoryBoard IB创建了2个新的viewControllers,我只是不知道如何用新的替换旧的链接的viewController!谢谢你的帮助! :)

1 个答案:

答案 0 :(得分:0)

您犯的错误是您正在直接更改标签栏控制器的标签栏的标签栏项目。别!更改选项卡栏控制器的视图控制器。标签栏控制器从中获取标签栏项。

您可能想阅读有关此主题的书籍:

http://www.apeth.com/iOSBook/ch19.html#_configuring_a_tab_bar_controller

特别注意:

  

标签栏控制器的标签栏将自动显示每个子视图控制器的tabBarItem

不要做任何事搞砸了! (你搞砸了。)操纵视图控制器的tabBarItem。操纵标签栏控制器的viewControllers。请勿亲自触摸标签栏控制器的标签栏。