UINavigationController & SplitViewController
Posted
技术标签:
【中文标题】UINavigationController & SplitViewController【英文标题】: 【发布时间】:2012-11-26 09:48:22 【问题描述】:我有一个项目,我使用NavigationController
作为我的SplitViewController
的详细视图。
所以当应用程序出现时,两个方向的一切都很好。但是,一旦我在导航控制器中推送视图,如果我处于纵向模式,我的“显示主视图”(uisplitview 委托)按钮将消失,uinavigationcontroller
的“后退”按钮将取代它。如果我按下后退按钮弹出我的视图,“显示主视图”按钮就会回来。
我的问题是,即使我已经推送了一些视图,我如何管理我希望能够在我的 UINavigationBar
中显示两个按钮(“返回”、“显示大师”)的事实?
【问题讨论】:
【参考方案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,但这需要更多的工作。 :)
【讨论】:
以上是关于UINavigationController & SplitViewController的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController改变UINavigationBar导航条标题颜色跟字体