【问题标题】:How to link a tabBarItem to a viewController programmatically (iPhone, iOS)如何以编程方式将 tabBarItem 链接到 viewController(iPhone、iOS)
【发布时间】:2013-03-25 17:17:00
【问题描述】:

我有一个带有登录系统的应用程序。如果用户成功登录,我希望 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!谢谢你的帮助! :)

【问题讨论】:

    标签: ios objective-c uiviewcontroller uitabbarcontroller uitabbaritem


    【解决方案1】:

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

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

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

    特别注意:

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

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

    【讨论】:

    • 好的,我已经将我的 title 属性和 image 属性放在了相关的 viewController 本身中。现在我的登录按钮操作中有这个: UIViewController* profile = [SceneProfile new]; [self.tabBarController setViewControllers:@[profile]];它确实改变了我的菜单,但它显示一个黑色窗口作为内容。 (我已经在情节提要中创建了我的个人资料 ViewController 布局)你介意解释一下如何让我的布局显示出来吗?谢谢马特!
    • 您已经“在情节提要中创建了您的配置文件 ViewController 布局”。但是[SceneProfile new] 对此一无所知。您需要使用一个标识符并取出您在 故事板 (instantiateViewControllerWithIdentifier:) 中绘制的 SceneProfile 实例。要么使用一个名为“SceneProfile.xib”的笔尖,而根本不是故事板。
    • 顺便说一句,阅读我的书中关于视图控制器的章节可能会对您有所帮助:apeth.com/iOSBook/ch19.html。您将了解什么是视图控制器,它从哪里获取视图,故事板到底是什么,标签栏控制器和其他父视图控制器是如何工作的,等等。这些似乎是你不知道的事情。
    • 我要去读那一章,谢谢你给我指明了正确的方向!
    猜你喜欢
    • 2014-01-16
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 2021-01-14
    • 1970-01-01
    • 2018-12-04
    相关资源
    最近更新 更多