1

我正在开发一个基于导航的应用程序,并且我有一个自定义 titleView 和一个用于导航栏的 rightBarButtonItem,我想要在我的应用程序的所有导航项中使用它们(例如可以从所有视图访问的徽标和菜单按钮)。

是否有任何好的做法来实现这一点,而不是每次推送新的 viewController 时手动设置 titleView 和 rightBarButtonItem ?我正在使用 monotouch.dialog,但欢迎提供任何提示,因为这似乎更像是关于 sdk 的问题。

问候,

4

2 回答 2

4

听起来继承将是您的解决方案。

您可能应该考虑创建一个 UIViewController 母类来处理设置 titleView 和 RightBarButton 项,然后您的应用程序中的所有 UIViewController 都将从该类继承。

于 2011-10-31T11:23:56.453 回答
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";
    }
}
于 2011-10-31T20:07:48.147 回答