导航工具栏右侧两个按钮

时间:2009-07-28 22:15:55

标签: iphone button system toolbar

有谁知道如何在导航工具栏的右上角添加两个系统按钮?我知道可以添加自定义按钮,我真的不明白为什么系统按钮也不能这样做。

我真的需要它。我需要一个添加按钮和一个编辑按钮。

编辑以重新排序和删除表格行。 添加以添加新行。

我无法使用底部工具栏,因为我有一个标签栏。

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:3)

这样的事情应该有用(替换你自己的图像和动作方法):

#define ACTIONEDIT  0
#define ACTIONADD   1
...
UISegmentedControl* segmentedControl = [[UISegmentedControl alloc] 
       initWithItems: [NSArray arrayWithObjects: 
         [UIImage imageNamed:@"icon-edit.png"], 
         [UIImage imageNamed:@"icon-add.png"],
         nil]
       ];
[segmentedControl addTarget:self 
                     action:@selector(segmentAction:) 
           forControlEvents:UIControlEventValueChanged];

segmentedControl.frame = CGRectMake(0, 0, 90, 30);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.momentary = YES;
[segmentedControl setEnabled:YES forSegmentAtIndex:ACTIONEDIT];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
                       initWithCustomView:segmentedControl];

...

- (void)segmentAction:(id)sender
{
  UISegmentedControl* segCtl = sender;
  int action = [segCtl selectedSegmentIndex];
  switch (action) {
    case ACTIONADD:
     [self addToList];
     break;
    case ACTIONEDIT:
     [self editList];
     break;
  }
} 

答案 1 :(得分:0)

使用默认导航栏,您只能有三个按钮,除非我遗漏了某些内容。一个在左边,一个在中间,一个在右边。即使您创建一个较小的按钮并认为您有足够的空间,所以触摸将全部注册到相同的按钮(无论哪个链接到右侧或左侧)。如果你想获得像google的navbars这样的功能,我建议你自己实现它。它真的不会那么困难,你会得到你想要的功能。如果你决定这样做,我相信你可以引导你完成困难的部分。

答案 2 :(得分:0)

我想知道如果你为UINavigationItem使用自定义视图会发生什么:

myViewController.navigationItem.titleView = myCustomView;

我想如果你没有按钮那么titleView可能会一直扩展到右边。如果没有右键,我会注意到标题文本会占用更多空间。

然后,您可以为该自定义视图添加标签(用于标题)和两个按钮。