我正在开发一个基于导航的应用程序,我在我的应用程序的所有导航项目中都有一个自定义titleView和一个rightBarButtonItem用于导航栏(如可以从所有视图访问的徽标和菜单按钮)。< / p>
有没有什么好的做法来实现它,而不是每次推送一个新的viewController时手动设置titleView和rightBarButtonItem?我正在使用monotouch.dialog但欢迎任何提示,因为这似乎更像是关于sdk的问题。
此致
答案 0 :(得分:4)
听起来遗传对你来说是一个解决方案。
你应该考虑做一个UIViewController母类来处理设置titleView和RightBarButton项目,然后你应用程序中的所有UIViewController都将从该类继承。
答案 1 :(得分:2)
您可能想首先问自己,您是否真的需要与UINavigationController直接相关的UINavigationBar,或者您是否想要一个包含您内容的静态UIToolbar。
或者,你可以做@MartinMoizard所指的是UIViewController的子类。我在下面提供了两个样本。干杯!
public class MyToolbar : UIToolbar
{
public MyToolbar()
: base()
{
var myTitle = MyCustomUIlabel();
var myButton = MyCustomUIButton();
this.SetItems(new UIBarButtonItem[] {
myTitle,
new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace),
myButton });
}
}
public class MyViewController : UIViewController
{
public MyViewController()
: base()
{
}
public override void ViewDidLoad()
{
//
// .. setup your code hurr' dawg
//
this.NavigationItem.RightBarButtonItem = myRightButton;
this.NavigationItem.Title = "My Title";
}
}