2

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

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

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

我不能使用底部工具栏,因为那里有一个标签栏。

有人可以帮帮我吗?

4

3 回答 3

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;
  }
} 
于 2009-07-31T04:56:43.067 回答
0

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

于 2009-07-29T02:20:11.517 回答
0

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

myViewController.navigationItem.titleView = myCustomView;

我想如果您那里没有按钮,titleView 可能会一直向右扩展。我注意到如果没有右键,标题文本会获得更多空间。

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

于 2009-07-31T03:51:18.190 回答