0

我有一个带有登录系统的应用程序。如果用户成功登录,我希望 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 个新的 viewController,我只是不知道如何用新的 viewController 替换旧的链接 viewController!谢谢你的帮助!:)

4

1 回答 1

0

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

你可能想阅读我关于这个主题的书:

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

特别注意:

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

不要做任何事情来搞砸它!(你搞砸了。)操纵视图控制器的tabBarItem. 操作标签栏控制器的viewControllers. 不要自己触摸标签栏控制器的标签栏。

于 2013-03-25T17:24:04.690 回答