标签栏在更多...选项卡中选择的项目获得标题“项目”

时间:2011-11-29 15:39:44

标签: iphone uitabbarcontroller title selecteditem

我有一个app委托,也是UINavigationControllerDelegate(我在尝试之前尝试将其设置为UITabBarControllerDelegate和UITabBarDelegate,如果这会触发一些工作,但是......)。

在mainwindow.xib中,我有一个带有6个项目的标签栏,它们被分成4 +一个更多的标签,进入标准视图,剩下两个标签(在列表中)。

此标签栏有一个控制器,它是导航控制器上的根控制器,名为rootCt。

现在,问题是选择了更多nav ctlr中的选项卡使选定的viewcontroller的标题为nil,显示“Item”而不是标签标题。

我想获得IB中设置的标题,因为我已经制作了本地化的笔尖。即,您在“更多”视图中单击的标题。

我试过了:

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

但这只是零。将索引更改为3会正确显示第3个标题,5会导致崩溃。

尝试:

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

这也给出了nil,因为它尚未设置 - 这就是 I 需要在此代码中设置的内容。

我不能使用selectedViewController.title,因为那是nil,而这正是我想要设置的。正确?

如何从“更多”视图中获取所选标签?应该这么难?或者我错过了一些明显的东西......

2 个答案:

答案 0 :(得分:0)

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

设置标题的正确位置(如果你想覆盖xib中设置的内容,它听起来不像你想做的那样!)在UIViewController显示的内容中,在{ {1}}或viewDidLoad方法。如果您使用viewDidAppear,则可能尚未设置。

但是我觉得你的xib设置不正确。

另一个问题是你在Xcode中开始使用什么模板?与使用标准模板相比,“手动”设置所有这些内容要困难得多。

答案 1 :(得分:0)

它一定是丢失的出口参考或类似。删除.xib并重做工作解决了它。