self.navigationItem.rightBarButtonItem = myBtn;
如果在iPhone上,可能會覺得一個按鈕就已經將位置佔滿了,但在iPad上面卻擁有很大的空間,所以大部份的人應該會希望在上面可以做出更多的變化,或是塞入更多的按鈕。
概念:
1. rightBarButtonItem或是leftBarButtonItem所接收的參數是UIBarButtonItem
2. UIBarButtonItem在init的時候可以利用initWithCustomView接入一個自定義的UIView
以加入一個圖片按鈕,兩個一般按鈕為例:
//定義三個想要加入的按鈕,
btnitem_layercontrol = [[UIBarButtonItem alloc] initWithTitle:@"功能一"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(btn_function1_Click)];
btnitem_findlocation = [[UIBarButtonItem alloc] initWithTitle:@"功能二"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(btn_function2_Click)];
UIImage *image = [UIImage imageNamed:@"search1_30.png"];
UIBarButtonItem *imagetestButton = [[UIBarButtonItem alloc] initWithImage:image
style:UIBarButtonItemStylePlain
target:self
action:@selector(btn_whereIam_Click)];
//將按鈕加到NSMutableArray當中。
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];
[buttons addObject:imagetestButton];
[buttons addObject:btnitem_layercontrol];
[buttons addObject:btnitem_findlocation];
//建立一個UIToolbar來裝載剛剛建立的NSMutableArray
UIToolbar* toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
[toolbar setTintColor:[self.navigationController.navigationBar tintColor]];
[toolbar setAlpha:[self.navigationController.navigationBar alpha]];
[toolbar setItems:buttons animated:NO];
[buttons release];
//將toolbar利用initWithCustomView加入UIBarButtonItem,在指給navigationItem.rightBarButtonItem。
UIBarButtonItem *olaBtn = [[UIBarButtonItem alloc] initWithCustomView:toolbar];
self.navigationItem.rightBarButtonItem = olaBtn;
[olaBtn release];
[toolbar release];
如此,若是你有使用UINavigation,則會看到右邊按鈕變成三個,並分別會呼叫btn_function1_Click,btn_function2_Click與btn_whereIam_Click三個方法。
如果配合UIPopoverController就可以產生很不錯的效果。
1 則留言:
到此一遊
張貼留言