有誰知道如何將兩個系統按鈕添加到導航欄右上角?我知道自定義按鈕可以添加,我真的不明白爲什麼系統按鈕不能這樣做。導航工具欄右側兩個按鈕
我真的很需要它。我需要一個添加按鈕和一個編輯按鈕。
編輯以重新排序和刪除表格行。 添加以添加新行。
我不能使用底部的工具欄,因爲我有一個tabbar。
有人能幫我嗎?
有誰知道如何將兩個系統按鈕添加到導航欄右上角?我知道自定義按鈕可以添加,我真的不明白爲什麼系統按鈕不能這樣做。導航工具欄右側兩個按鈕
我真的很需要它。我需要一個添加按鈕和一個編輯按鈕。
編輯以重新排序和刪除表格行。 添加以添加新行。
我不能使用底部的工具欄,因爲我有一個tabbar。
有人能幫我嗎?
使用默認的導航欄,你只能有三個按鈕,除非我失去了一些東西。一個在左邊,一個在中心,另一個在右邊。即使你創建了一個更小的按鈕,並認爲你有足夠的空間,觸摸將全部註冊到相同的按鈕(無論哪個鏈接到右側或左側)。如果你想獲得谷歌的導航欄功能,我建議你自己實現它。這真的不會那麼困難,而且你會得到你想要的功能。如果你決定這樣做,我確定SO可以指導你處理困難的部分。
不知你會使用一個自定義視圖爲您UINavigationItem會發生什麼:
myViewController.navigationItem.titleView = myCustomView;
我想象titleview的可能擴展一路的權利,如果你沒有一個按鈕那裏。我注意到如果沒有右鍵,標題文字會獲得更多的空間。
然後,您可以爲該自定義視圖添加一個標籤(用於標題)和兩個按鈕。
像這樣的東西應該工作(替換自己的圖像和操作方法):
#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;
}
}