嘿嘿,我有一叠UIViewController
s 位于 a 的内部UINavigationController
。通常标题(或导航项的标题)决定导航栏中显示的标题(显示在顶部)and所有导航按钮,例如导航栏本身的后退按钮。
现在,我计划在导航栏的标题中添加更多信息,同时仍然保持这些按钮标签简短明了(例如视图的标题是“概述”,而按钮应该只显示“概述” ”)。
我目前正在尝试通过更改 NavigationItem 的标题来实现此目的ViewWillAppear
and ViewWillDisappear
。这效果很好,但人们可以看到文本发生变化的时刻(可能是由于动画)。我尝试过不同的组合ViewDidAppear
and ViewDidDisappear
也是如此,但效果最好Will
方法。下面显示了一个示例代码(Example
类被推送到 UINavigationController)。
有更好的方法来实现这一目标吗?也许只需更改按钮标题即可only或者直接改变导航的标题?或者我可以阻止标准机制将标题复制到所有其他实例吗?
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。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)