2013-05-08 161 views
3

enter image description hereUINavigationItem:添加一個按鈕

如何在navigationItem中添加新按鈕?假設我需要將它添加到右鍵附近。

用於左右的代碼。

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:_cancelButton]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:_shareButton]; 

如何添加一個按鈕?

+1

請參考[鏈接](樂於助人http://stackoverflow.com/questions/6249416/adding-more-than-two-button-on-the-navigationbar) – LittleIDev 2013-05-08 12:11:04

+0

@Jyotishree謝謝...讓我試試這種方式。 – iPhoneProcessor 2013-05-08 12:37:10

+1

將按鈕添加到UIView,然後將該視圖添加爲正確的bar buttonitem。 – jamil 2013-05-08 13:04:53

回答

4

有不同的方法來添加上的Simplist方式navigationcontroller.one的右側多於一個按鈕下面

UIView *buttonView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 44)]; 

UIButton *exampleButton1 = [UIButton buttonWithType:UIButtonTypeCustom]; 
exampleButton1.frame = CGRectMake(0, 2, 30, 40); 
[exampleButton1 addTarget:self action:@selector(FirstMethod) forControlEvents:UIControlEventTouchUpInside]; 
[exampleButton1 setImage:[UIImage imageNamed:@"image1.png"] forState:UIControlStateNormal]; 
[buttonView addSubview:exampleButton1]; 


UIButton *exampleButton2 = [UIButton buttonWithType:UIButtonTypeCustom]; 
exampleButton2.frame = CGRectMake(70, 2, 30, 40); 
[exampleButton2 addTarget:self action:@selector(Second method) forControlEvents:UIControlEventTouchUpInside]; 
[exampleButton2 setImage:[UIImage imageNamed:@"image2.png"] forState:UIControlStateNormal]; 

[buttonView addSubview:exampleButton2]; 

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:buttonView]; 

給出希望這將是周到,謝謝

+0

非常感謝。這就是我需要的。 – iPhoneProcessor 2013-05-08 17:38:14

+0

嗯歡迎您 – jamil 2013-05-08 17:40:13

1
NSArray *tempArray2= [[NSArray alloc] initWithObjects:self.shareBtn,self.gameCenterBtn,nil]; 
self.navigationItem.leftBarButtonItems=tempArray2; 
1

試試這個。它爲我工作。

UIBarButtonItem *flex = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
    flex.width = 20; 
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btn setFrame:CGRectMake(0, 0, 40, 30)]; 
    [btn setImage:[UIImage imageNamed:@"mac-gray.png"] forState:UIControlStateNormal]; 

    UIBarButtonItem *bar1 = [[UIBarButtonItem alloc]initWithCustomView:btn]; 

    UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btn2 setFrame:CGRectMake(0, 0, 40, 30)]; 
    [btn2 setImage:[UIImage imageNamed:@"mac-gray.png"] forState:UIControlStateNormal]; 

    UIBarButtonItem *bar2 = [[UIBarButtonItem alloc]initWithCustomView:btn2]; 

    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:bar1,flex,bar2, nil]; 
+0

不適合我...因爲我使用了單獨的文本... – iPhoneProcessor 2013-05-08 12:19:51

+0

@iPhoneProcessor這對你有幫助嗎? – NightFury 2013-05-08 12:38:15

4

您可以添加更多按鈕

self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:uibarbuttonInstance1, uibarbuttonInstance2, nil]; 

同爲右按鈕

self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:uibarbuttonInstance1, uibarbuttonInstance2, nil]; 
+0

我試過這之前,現在...得到崩潰: - [UIButton isSystemItem]:無法識別的選擇發送到實例0xa68b840' – iPhoneProcessor 2013-05-08 12:17:36

+2

添加UIBarButton不UIbutton – 2013-05-08 12:18:20

+1

不工作....請看我的代碼片段http:// pastebin。 com/iKt3dTGT – iPhoneProcessor 2013-05-08 12:34:20

2

中鍵

UIButton *btnShow = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 34, 34)]; 
    btnShow.backgroundColor = [UIColor colorWithWhite:0.411 alpha:1.000]; 
    [btnShow setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateNormal]; 
    [btnShow setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateHighlighted]; 
    self.navigationItem.titleView = btnShow; 

右鍵欄按鈕

UIButton *tempButton1 = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [tempButton1 setFrame:CGRectMake(0, 0, 34, 34)]; 
    tempButton1.tag = 0; 
    [tempButton1 addTarget:self action:@selector(btnBackClicked:) forControlEvents:UIControlEventTouchUpInside]; 

    [tempButton1 setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateNormal]; 
    [tempButton1 setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateHighlighted]; 
    [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:tempButton1]]; 

左欄按鈕

UIButton *tempButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[tempButton setFrame:CGRectMake(0, 0, 34, 34)]; 
[tempButton addTarget:self action:@selector(btnBackClicked:) forControlEvents:UIControlEventTouchUpInside]; 
[tempButton setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateNormal]; 
[tempButton setImage:[UIImage imageNamed:@"btn_back.png"] forState:UIControlStateHighlighted]; 
[self.navigationItem setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:tempButton] 

輸出

enter image description here

+0

不適用於我...用於titleView的文本... :( – iPhoneProcessor 2013-05-08 13:16:48

+0

在TitleView中,您已經放置了文本或什麼?好吧...如果是這樣......您需要文本和按鈕或者文本本身作爲按鈕 – 2013-05-08 13:19:09