UINavigationItem titleView“如果设置了leftBarButtonItem则忽略”?

问题描述 投票:11回答:5

UINavigationItem的titleView属性says的文档:

“如果leftBarButtonItem不是零,那么这个属性就会被忽略。”

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

iphone uinavigationcontroller uikit uinavigationbar uinavigationitem
5个回答
8
投票

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

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

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


3
投票

我认为文档是错误的,你应该提交一份错误报告。


0
投票

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


0
投票

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


-1
投票

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

虽然很混乱。

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

“导航控制器更新导航栏的中间位置,如下所示:

...

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

因为只要你在非root视图中有一个leftBarByButton(后退按钮),它肯定在UINavigationItem的文档中是一个错误

© www.soinside.com 2019 - 2024. All rights reserved.