以编程方式更改标签栏

Posted

技术标签:

【中文标题】以编程方式更改标签栏【英文标题】:Change Tab Bar Programmatically 【发布时间】:2013-06-14 06:04:01 【问题描述】:

我正在尝试在单击按钮时更改选项卡视图。我有这个代码:

- (IBAction)startScratch:(id)sender 
     _mainTabBar.tabBarController.selectedIndex = 1;
        //Error: ^ Property tabBarController not found on type "NSTabView*"

.h 文件包含以下代码行:

@property (weak) IBOutlet NSTabView *mainTabBar;
- (IBAction)startScratch:(id)sender;

我假设我应该用一些东西替换 _mainTabBar,但如果是这样,那是什么?

【问题讨论】:

错误很明显,编译器告诉你是什么。 NSTabView 没有名为 tabBarController 的属性。你想做什么? 我说的是我想要做的,当一个按钮被点击时改变标签视图。我从here 中找到了基本想法。再说一次,我的 Objective-C 很糟糕,所以我不确定自己在做什么。 嗯?这是针对 ios 的……您应该阅读文档,而不是做出假设…… 【参考方案1】:

正如@H2CO3 提到的,NSTabView 中没有tabBarController 属性。如果您阅读the documentation,您会注意到NSTabView 提供了一些选择方法,包括-selectTabViewItemAtIndex:,您可以这样使用:

- (IBAction)startScratch:(id)sender 
    [_mainTabBar selectTabViewItemAtIndex:1];

请注意,第一个选项卡位于索引 0。

【讨论】:

谢谢,我已经为此苦苦挣扎了一段时间。

以上是关于以编程方式更改标签栏的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式更改初始标签栏选择

在 viewDidLoad() 中以编程方式更改标签栏项目标题

如何以编程方式更改标签栏项目使用的默认图标?

更改标签栏的背景颜色

Swift:更改标签栏的图像色调颜色?

Swift:以编程方式嵌入标签栏控制器后,导航栏消失