我有一个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,而这正是我想要设置的。正确?
如何从“更多”视图中获取所选标签?应该这么难?或者我错过了一些明显的东西......
答案 0 :(得分:0)
首先,您在哪里尝试运行上面粘贴的代码?我们可能需要更多细节来帮助您。
设置标题的正确位置(如果你想覆盖xib中设置的内容,它听起来不像你想做的那样!)在UIViewController
显示的内容中,在{ {1}}或viewDidLoad
方法。如果您使用viewDidAppear
,则可能尚未设置。
但是我觉得你的xib设置不正确。
另一个问题是你在Xcode中开始使用什么模板?与使用标准模板相比,“手动”设置所有这些内容要困难得多。
答案 1 :(得分:0)
它一定是丢失的出口参考或类似。删除.xib并重做工作解决了它。