通过 UITabBarController 访问时如何设置 UITabBars 项目属性?

Posted

技术标签:

【中文标题】通过 UITabBarController 访问时如何设置 UITabBars 项目属性?【英文标题】:How to set the UITabBars items property when accessing through a UITabBarController? 【发布时间】:2010-06-09 13:13:33 【问题描述】:

我以编程方式构建了一个 UITabBarController 并填充了它的 viewControllers 属性。 当我运行它时,tabBar 按钮当然是空的,我尝试访问 UITabBarController 上的 tabBar 属性以将其 items 属性设置为我的文本/图像,这导致应用程序崩溃。

浏览了 UITabBarController 的文档,我在 tabBar 属性下阅读了这个:

标签栏视图关联 用这个控制器。 (只读)

@property(nonatomic,readonly) UITabBar *tabBar 讨论 你不应该尝试操纵 UITabBar 对象本身存储在此属性中。 如果您尝试这样做,标签栏 视图抛出异常。配置 标签栏界面的项目, 您应该分配一个或多个 自定义视图控制器 viewControllers 属性。标签栏 收集所需的标签栏项目 您指定的视图控制器。

由此提供的标签栏视图 属性仅适用于以下情况 你想显示一个动作表 使用 showFromTabBar: 方法 UIActionSheet 类。

这就是我想要的:

标签栏收集需要的标签 来自视图控制器的栏项目 你指定。

不要在一个地方设置 tabBar 而在另一个地方设置内容也很有意义。

但是如何在我的 viewControllers 中定义这些项目,这些项目都是 UINavigationController 类型,我的自定义 ViewController 作为 rootController?

除了 UITabBarControllerDelegate 之外,我还需要实现一些协议吗?

希望有人能指出我正确的方向,我没有看到这个:)谢谢

【问题讨论】:

【参考方案1】:

通常,选项卡栏项目会填充您正在加载到其中的视图控制器的名称。

在你的情况下,你可以做一件事,

[tabbarContrller.tabBarItem initWithTitle:@"rafsfsa" image:[UIImage imageName:@"some.png" tag:0];

如果收到了请回复。

【讨论】:

嗨,谢谢...我确实觉得有点愚蠢,我开始构建 ViewControllers,当我做 [self.navigationController setTitle:@"String"] 按钮时,标题出现了。然后我做了 [self.navigationController setTabBarItem:myItem] ... 方法在那里,正如文档所说,我只是专注于 TabBarController。再次感谢。

以上是关于通过 UITabBarController 访问时如何设置 UITabBars 项目属性?的主要内容,如果未能解决你的问题,请参考以下文章

UITabBarController - 如何访问视图控制器?

隐藏(不删除)一个 UITabBarController UITabBarItem

如何从它的项目 ViewControllers 访问 UITabBarController 的变量

无法从模态 ViewController 访问 UITabBarController

UISplitview:从 appDelegate 访问 UITabBarController

从 UITabBarController 和 UINavigationController 访问 UIViewController