【问题标题】:Tab Bar Items selected in the More... tab get the title "Item"在“更多...”选项卡中选择的选项卡栏项目获得标题“项目”
【发布时间】:2011-11-29 15:39:43
【问题描述】:

我有一个应用程序委托,它也是 UINavigationControllerDelegate(在询问是否会触发某些工作之前,我尝试将其设置为 UITabBarControllerDelegate 和 UITabBarDelegate,但是......)。

在 mainwindow.xib 中,我有一个包含 6 个项目的选项卡栏,这些项目被分成 4 个 + 一个更多选项卡,该选项卡与剩余的两个选项卡一起进入标准视图(在列表中)。

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

现在,问题是在 More nav ctlr 中选择选项卡会使所选视图控制器的标题为零,显示“项目”而不是选项卡标题。

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

我试过了:

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

但这给出了零。将 index 更改为 3 会正确显示第 3 个标题,而 5 会导致崩溃。

试过了:

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

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

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

如何从更多视图中获取选定的标签标题?应该这么难吗??还是我错过了一些明显的东西......

【问题讨论】:

    标签: iphone uitabbarcontroller title selecteditem


    【解决方案1】:

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

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

    但在我看来,你的 xib 设置不正确。

    您的另一个问题是您在 Xcode 中从哪个模板开始?与使用标准模板相比,“手动”设置所有这些东西要困难得多。

    【讨论】:

    • 在哪里:在标签 #4 的视图控制器的 viewDidLoad 中。我想从 xib 中读取标签 #4 图标下的文本。 xib 设置正确。模板:窗口应用程序。 TabBar 在 mainwindow.xib 中。设置正确。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多