24 navigation iphone
我想在导航栏上有两个rightBarButtonItems.一个用于编辑,另一个用于添加.
显然我无法使用Interface Builder.
有人知道如何以编程方式进行吗?谢谢!
jro*_*yce 68
现在包含在iOS 5中,名为rightBarButtonItems,注意复数
这是来自apple docs的文本:
rightBarButtonItems
当接收器是顶部导航项时,一组自定义栏按钮项目显示在导航栏的右侧.
@property(非原子,复制)NSArray*rightBarButtonItems
讨论
此数组可以包含0个或更多条形按钮项目,以显示在
导航栏的右侧.项目从右到左显示的顺序与它们在数组中显示的顺序相同.因此,数组中的第一项是最右边的项,其他项添加到前一项的左侧.如果没有足够的空间显示数组中的所有项目,则不会显示与标题视图(如果存在)或条形图左侧的按钮重叠的项目
.也可以使用rightBarButtonItem属性设置数组中的第一项.
在UINavigationBar.h中声明
以下是我在导航栏右侧实现搜索图标和编辑图标的方法:
UIBarButtonItem *searchButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemSearch
target:self
action:@selector(searchItem:)];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemEdit
target:self action:@selector(editItem:)];
self.navigationItem.rightBarButtonItems =
[NSArray arrayWithObjects:editButton, searchButton, nil];
Run Code Online (Sandbox Code Playgroud)
小智 37
下面是一个如何添加两个按钮作为右键按钮的示例.下面的代码创建了一个包含向上和向下箭头按钮的分段控件,然后将其添加为导航右侧按钮的自定义视图:
UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray array]];
[segmentedControl setMomentary:YES];
[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"icon-triangle-up.png"] atIndex:0 animated:NO];
[segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"icon-triangle-down.png"] atIndex:1 animated:NO];
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
[segmentedControl addTarget:self action:@selector(segmentedAction:) forControlEvents:UIControlEventValueChanged];
UIBarButtonItem * segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView: segmentedControl];
self.navigationItem.rightBarButtonItem = segmentBarItem;
Run Code Online (Sandbox Code Playgroud)
导航栏是一个 UIView,因此您可以简单地创建一个常规 UIButton 并将其作为子视图添加到导航栏。
设置相对于导航栏的框架。如果您希望它看起来与内置按钮一模一样,您可能必须自己生成图形,因为它们不会暴露给 SDK AFAIK。
| 归档时间: |
|
| 查看次数: |
29724 次 |
| 最近记录: |