【问题标题】:UINavigationController & SplitViewControllerUINavigationController & SplitViewController
【发布时间】:2012-11-26 09:48:22
【问题描述】:

我有一个项目,我使用NavigationController 作为我的SplitViewController 的详细视图。

所以当应用程序出现时,两个方向的一切都很好。但是,一旦我在导航控制器中推送视图,如果我处于纵向模式,我的“显示主视图”(uisplitview 委托)按钮将消失,uinavigationcontroller 的“后退”按钮将取代它。如果我按下后退按钮弹出我的视图,“显示主视图”按钮就会回来。

我的问题是,即使我已经推送了一些视图,我如何管理我希望能够在我的 UINavigationBar 中显示两个按钮(“返回”、“显示大师”)的事实?

【问题讨论】:

    标签: ios uinavigationcontroller uisplitviewcontroller uisplitviewdelegate


    【解决方案1】:

    您可以使用 UIToolbar 来完成。您必须首先隐藏导航栏并在视图顶部放置一个 UiToolbar。

    现在您可以根据需要添加按钮。

    UIToolbar *tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 20, 1036, 42)];          
    tools.barStyle = UIBarStyleBlackTranslucent;
    NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];
    
    UIBarButtonItem * backButton = [[UIBarButtonItem alloc] initWithCustomView:myCustomView];
    [buttons addObject:backButton];
    
    //you can add also a spacer
    UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    [buttons addObject:spacer];
    
    UIBarButtonItem * homeButton = [[UIBarButtonItem alloc] initWithCustomView:myCustomView];
    [buttons addObject:homeButton];
    [tools setItems:buttons animated:NO];
    

    【讨论】:

      【解决方案2】:

      普通的UINavigationBar 根本无法做到这一点。

      您必须将“显示主视图”按钮放在其他地方 - 例如在详细视图底部的 UIToolbar 中。

      或者您可以编写自己的 NavigationController 和 NavigationBar,但这需要更多的工作。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-04
        • 2013-03-26
        • 2011-12-18
        • 1970-01-01
        • 2011-02-07
        • 2011-08-04
        • 2012-01-31
        • 1970-01-01
        相关资源
        最近更新 更多