0

我在界面生成器中创建了一个tabBar应用程序 - 并在那里为我的所有选项卡和选项卡命名。现在可以在运行时以编程方式查找或检索我的选项卡名称吗? 当我做viewControllers阵列的NSLog的,我得到的是:
( “”, “”, “”, “”, “” )你能以编程方式检索TabBarApp中的选项卡的名称吗?

这显然没有好 - 我需要获得更具体的信息。

另外,我注意到你不能在标签中设置标签,标题或标签到任何标签中的视图控制器。

那么如何通过代码识别你坐在你的各个标签中?或者你必须抛弃接口生成器,并通过代码做所有事情?

回答

1
for(id btn in TabObject.tabBar.items) 
    { 
     if([btn isKindOfClass:[UITabBarItem class]]) 
     { 
      UITabBarItem *sender=btn; 
      NSLog(@"%@",sender.title); 
     } 
    } 
+0

工作:-)非常感谢你:-) – sirab333

1

每个视图控制器中的标签栏项目包含标题。

for (UIViewController *viewController in tabBarController.viewControllers) { 
    NSLog(@"%@", viewController.tabBarItem.title); 
} 

话虽如此,我认为指特定标签的最好办法是从应用程序委托给每个视图控制器有明确的IBOutlet秒。由于不会超过一小撮,所以这不应该是额外的代码。

+0

我只是复制粘贴你的代码,我得到这个错误:“使用未声明的标识符‘变种’的” – sirab333

+0

在从App-委托给每个视图控制器指定IBOutlets方面 - 你的意思是每个标签?所以代码是这样的:“IBOutlet UITabBarItem * tab1,* tab2,* tab3;”等等,然后将箭头从文件所有者拖到每个选项卡? – sirab333

+0

'var'应该是'UIViewController *'(对不起,我脑子错误的语言)。你想让视图控制器的出口,所以把它们声明为'@property(nonatomic,retain)IBOutlet UIViewController *'。 –

相关问题