2013-05-08 156 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