【问题标题】:Why is my UITabBarController empty?为什么我的 UITabBarController 是空的?
【发布时间】:2010-01-26 13:28:07
【问题描述】:

我这样创建了一个 UITabBarController:

InfoViewController *iVC = [[InfoViewController alloc] init];
self.infoViewController = iVC; // retain property

UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemSearch tag:0];
self.infoViewController.tabBarItem = tabBarItem;





UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:myVC];
self.navigationController = nc;

UITabBarItem *tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemMostRecent tag:1];
self.navigationController.tabBarItem = tabBarItem;






UITabBarController *tbc = [[UITabBarController alloc] init];

NSArray* controllers = [NSArray arrayWithObjects:self.infoViewController, self.navigationController, nil];

self.tabBarController = tbc; // retain property!

self.tabBarController.viewControllers = 控制器; [待定发布];

问题:我看到底部有一个黑色的标签栏和一个白色的内容区域。数组中的第一个视图控制器具有红色背景色。所以它应该显示为红色。

标签栏没有显示任何项目,它是空的。

可能是什么问题?我不使用 nib 文件...没有警告,没有错误,没有任何记录到控制台。只是清空标签栏。

【问题讨论】:

    标签: iphone uitabbarcontroller uitabbaritem


    【解决方案1】:

    你是不是错过了:

    self.tabBarController.viewControllers = controllers;
    

    编辑:

    除此之外,我在包含的代码中没有看到任何错误的东西,所以这让我认为其他东西一定是错误的。几个选项:

    1. 您确定 self.tabBarController 指向任何东西(不是 nil)吗?
    2. 您确定它指向的是您看到的同一个 UITabController 吗?
    3. 您确定您正在创建的控制器是正确创建的吗?尝试使用

      显示它们,而不考虑 tabBar

      [self.tabBarController presentModalViewController:iVC 动画:YES];

    4. UITabController 是从 NIB 创建的吗?如果将 NSLog 放在 initWithNibName 或 awakeFromNib 上,以确保在您的代码之前调用它,而不是在您的代码之后再次调用它。

    从这些开始,如果没有任何迹象表明有其他问题,我可以考虑更多尝试。

    【讨论】:

    • 对,我忘了复制粘贴到这里。但这不是原因。
    猜你喜欢
    • 2017-02-15
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多