【问题标题】:UINavigationItem titleView "ignored if leftBarButtonItem is set"?UINavigationItem titleView“如果设置了leftBarButtonItem则忽略”?
【发布时间】:2012-03-30 05:31:34
【问题描述】:

UINavigationItem 的titleView 属性says 的文档:

"如果leftBarButtonItem 不为零,则忽略此属性。"

但是,我在测试中设置了 titleViewleftBarButtonItem 属性,它们看起来都很好。我已经在我的 Xcode 中的所有模拟器上进行了测试:4.3、5.0 和 5.1。有谁知道文档是错误的,还是在我无法测试的某些旧版本(例如 4.2、3.x)上正确?

【问题讨论】:

标签: iphone uinavigationcontroller uikit uinavigationbar uinavigationitem


【解决方案1】:

查看属性leftBarButtonItems 的文档,它说:

如果没有足够的空间来显示数组中的所有项目, 那些会重叠标题视图(如果存在)或按钮 右侧的栏不显示。

所以,titleView 的说法可能不正确。

【讨论】:

    【解决方案2】:

    我认为文档有误,您应该提交错误报告。

    【讨论】:

      【解决方案3】:

      我在 iOS6.1 和 iOS7 上对此进行了测试。我的 UINavigationItem 有一个非零 titleView 和 leftBarButtonItem,并且 titleView 和 leftBarButtonItem 都是可见的。我提交了一个雷达。

      【讨论】:

        【解决方案4】:

        我也遇到过这种情况。在我的具体问题中,titleview 和 leftbar 项目都会出现。但是,如果我有一个后退按钮,那么我的标题视图将在 Push 上消失并使用默认标题。如果我为左侧设置了自定义 uibuttonitem,它可以正常工作。所以它似乎与后退按钮有关。我最终通过设置标题属性而不做自定义视图来解决。

        【讨论】:

          【解决方案5】:

          我刚遇到这个,发现和你做的一样。我还注意到 UINavigationItem 的文档最后一次更新是在 2011 年,而 UINavigationBar 在 iOS 5 和 6 中都有更新,因此自上次更新 UINavigationItem 文档以来,这种行为可能发生了变化。

          虽然很混乱。

          在 UINavigationController 的参考资料中也注意到了这一点:

          "导航控制器更新导航栏中间如下:

          ...

          如果新的顶级视图控制器具有自定义标题视图,导航栏会显示该视图以代替默认标题视图。要指定自定义标题视图,请设置视图控制器导航项的 titleView 属性。”

          由于在您处于非根视图的任何时候都有一个 leftBarByButton(后退按钮),因此 UINavigationItem 的文档中似乎有一个错误

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-02-05
            • 1970-01-01
            • 1970-01-01
            • 2016-02-25
            • 1970-01-01
            • 1970-01-01
            • 2012-02-20
            相关资源
            最近更新 更多