如何在 iOS 5.1 的 uiSplitViewController 中设置 barButtonItems?
Posted
技术标签:
【中文标题】如何在 iOS 5.1 的 uiSplitViewController 中设置 barButtonItems?【英文标题】:How can I set barButtonItems in a uiSplitViewController in iOS 5.1? 【发布时间】:2012-04-16 04:39:31 【问题描述】:我正在使用 XCode 4.3.1 中的 Master-Detail 模板,并且想要访问 detailView 控件上的工具栏。
[self navigationItem] 设置标题:
设置标题,但我不知道如何通过 xib 或以编程方式添加 barButtonItems。过去,使用较早的 SplitView 模板(当主视图称为根视图时),我可以通过 MainWindow.xib 中的拆分视图控制器访问 rootView 工具栏,并且在 detailView.xib 文件中就有 detailView 工具栏。
在 detailView 工具栏上设置这些项目(我有 4 个)的最佳方式是什么?
提前致谢。
【问题讨论】:
【参考方案1】:所以我有一个答案 - 如果你有更好的答案,请告诉我!
在我的 masterViewController 的 viewDidLoad 方法中,我用
填充了详细视图上的工具栏[_detailViewController.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects: _detailViewController.firstButton, _detailViewController.secondButton, _detailViewController.thirdButton, nil]];
我用
创建了这些按钮_detailViewController.firstButton = [[UIBarButtonItem alloc] initWithTitle:@"First" style:UIBarButtonItemStylePlain target:self action:@selector(firstButtonAction:)];
我已经在 detailViewController.h 文件中声明了这些按钮中的每一个,以便以后可以引用它们,但可能不需要使用这些名称 - 它只是使这里的代码更长。我还有一个无法添加到按钮数组中的 uiButton,因此我创建了一个按钮,将其放在 View 中,然后将其设置为导航项的 titleView:
_detailViewController.biggerButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 230, 35)]; [[_detailViewController biggerButton] addTarget:self action:@selector(biggerButtonTap:) forControlEvents:UIControlEventTouchUpInside];
UIView *biggerButtonView = [[UIView alloc] initWithFrame:CGRectMake(80, 3, 230, 35)];
[biggerButtonView addSubview:_detailViewController.biggerButton];
_detailViewController.navigationItem.titleView = biggerButtonView;
【讨论】:
以上是关于如何在 iOS 5.1 的 uiSplitViewController 中设置 barButtonItems?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UISplitView 的详细视图中清除 UIWebView 的内容
我应该如何使用 UISplitView 自适应用户界面呈现 UISearchController?