在"更多...选项卡获取标题"Item"



我有一个应用程序委托,这也是UINavigationControllerDelegate(我已经尝试将其设置为UITabBarControllerDelegate和UITabBarDelegate之前询问,如果这会触发一些工作,但是…)。

在主窗口。xib,我有一个有6个项目的选项卡栏,它被分成4 +一个更多的选项卡,它与剩下的两个选项卡(在列表中)一起进入标准视图。

这个标签栏有一个控制器,它是导航控制器上的根控制器,叫做rootCt。

现在,问题是在More导航ctlr中选择的选项卡使选定的视图控制器的标题为nil,显示"Item"而不是选项卡标题。

我想让标题在IB中设置,因为我已经做了本地化的nib。Ie。,就是你在More视图中点击的标题。

我试过:

UITabBarItem *item=[[appd rootCt].tabBar.items objectAtIndex:4];
NSString *str=[item title];
self.title=str;

但是这里给出nil。将index更改为3会使第三个标题正确,而5会导致崩溃。

尝试:

NSString *str=[appd rootCt].selectedViewController.title;

这也给出nil,因为它还没有设置——这就是I需要在这段代码中设置的。

我不能使用selectedViewController。title,因为这是nil这就是我要设置的。对吧?

如何从More视图获得选中的选项卡标题?有这么难吗?或者我错过了什么明显的东西……

首先,您要在哪里运行上面粘贴的代码?我们可能需要更多的细节来帮助你。

设置标题的正确位置(如果您想覆盖xib中设置的内容,听起来不像您想要做的!)是在正在显示的UIViewController中,在其viewDidLoadviewDidAppear方法中。如果您使用viewWillAppear,它可能还没有设置。

但是听起来你的xib设置不正确。

另一个问题是你在Xcode中是用什么模板开始的?与使用标准模板相比,"手工"设置所有这些东西要困难得多。

一定是丢失的出口引用或类似的。

最新更新