NavigationBar和导航button中分隔标题

嗨,我有UINavigationController里面的一堆UIViewController 。 通常,标题(或NavigationItem的标题)决定NavigationBar(显示在顶部)显示的标题所有导航button,例如导航栏本身的后退button。

现在,我打算在NavigationBar的标题中join更多的信息,同时保持这些button标签的简洁和简洁(例如,视图的标题是“<客户名称>概述”,而button应该只显示“概览”)。

我目前正在尝试通过更改ViewWillAppearViewWillDisappear上的NavigationItem标题来实现此ViewWillDisappear 。 这个效果很好,但是可以看到文本改变的时刻(可能是由于animation)。 我已经尝试了与ViewDidAppearViewDidDisappear不同的组合,但效果是最好的只有Will方法。 下面显示了一个示例代码( Example类被推送到一个UINavigationController)。

有没有更好的方法来实现这个? 也许仅仅是简单地改变button标题,或者直接改变导航标题? 或者我可以阻止标准机制将标题复制到所有其他实例?

 public class Example : UIViewController { private int depth; public Example ( int depth = 0 ) { this.depth = depth; this.Title = "Title"; } public override void ViewDidLoad () { base.ViewDidLoad(); UIButton btn = new UIButton( new RectangleF( 100, 100, 300, 50 ) ); btn.SetTitle( "Duplicate me!", UIControlState.Normal ); btn.TouchDown += delegate(object sender, EventArgs e) { NavigationController.PushViewController( new Example( depth + 1 ), true ); }; View.Add( btn ); } public override void ViewWillAppear ( bool animated ) { base.ViewWillAppear( animated ); this.NavigationItem.Title = String.Format( "Title / {0}", depth ); } public override void ViewWillDisappear ( bool animated ) { base.ViewWillDisappear( animated ); this.NavigationItem.Title = "Title"; } } 

如果我正确地理解了你,我认为这是一个现成的:

在视图控制器的导航项上设置backBarButtonItem。