通过 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