我正在开发一个基于导航的应用程序,并且我有一个自定义 titleView 和一个用于导航栏的 rightBarButtonItem,我想要在我的应用程序的所有导航项中使用它们(例如可以从所有视图访问的徽标和菜单按钮)。
是否有任何好的做法来实现这一点,而不是每次推送新的 viewController 时手动设置 titleView 和 rightBarButtonItem ?我正在使用 monotouch.dialog,但欢迎提供任何提示,因为这似乎更像是关于 sdk 的问题。
问候,
我正在开发一个基于导航的应用程序,并且我有一个自定义 titleView 和一个用于导航栏的 rightBarButtonItem,我想要在我的应用程序的所有导航项中使用它们(例如可以从所有视图访问的徽标和菜单按钮)。
是否有任何好的做法来实现这一点,而不是每次推送新的 viewController 时手动设置 titleView 和 rightBarButtonItem ?我正在使用 monotouch.dialog,但欢迎提供任何提示,因为这似乎更像是关于 sdk 的问题。
问候,
听起来继承将是您的解决方案。
您可能应该考虑创建一个 UIViewController 母类来处理设置 titleView 和 RightBarButton 项,然后您的应用程序中的所有 UIViewController 都将从该类继承。
您可能想首先问自己是否真的需要与 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";
}
}