2011-05-25 110 views
7

我与导航栏按钮的工作items.i使用下面的代码,这样做添加栏按钮项目

UIBarButtonItem *btnSave = [[UIBarButtonItem alloc] 
            initWithTitle:@"Save"            
            style:UIBarButtonItemStyleBordered 
            target:self 
           action:@selector(save_Clicked:)]; 
    self.navigationItem.rightBarButtonItem = btnSave; 
    [btnSave release]; 

    UIBarButtonItem *btnCancel = [[UIBarButtonItem alloc] 
            initWithTitle:@"Cancel"            
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:@selector(save_Clicked)]; 
    self.navigationItem.leftBarButtonItem = btnCancel; 
    [btnCancel release]; 

我的问题是如何添加另一个按钮仅仅靠近左边栏按钮项目。 在此先感谢

回答

8

要做到这一点,你需要创建一个工具栏,然后不断加入的UIButton它,然后将工具栏作为leftBarButton

是这样的:

UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 250, 44)]; 
tools.tintColor = [UIColor clearColor]; 
[tools setTranslucent:YES]; 

NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:9]; 

UIImage *myImage = [UIImage imageNamed:@"AL_HomeMod_Icon.png"]; 
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[myButton setImage:myImage forState:UIControlStateNormal]; 
myButton.showsTouchWhenHighlighted = YES; 
myButton.frame = CGRectMake(0.0, 0.0, myImage.size.width, myImage.size.height); 

[myButton addTarget:self action:@selector(clickViewHomeMod) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *bi = [[UIBarButtonItem alloc] 
         initWithCustomView:myButton]; 

[buttons addObject:bi]; 
[bi release]; 

myImage = [UIImage imageNamed:@"AL_History_Icon.png"]; 
myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[myButton setImage:myImage forState:UIControlStateNormal]; 
myButton.showsTouchWhenHighlighted = YES; 
myButton.frame = CGRectMake(0.0, 0.0, myImage.size.width, myImage.size.height); 

[myButton addTarget:self action:@selector(clickViewHistory) forControlEvents:UIControlEventTouchUpInside]; 

bi = [[UIBarButtonItem alloc] 
     initWithCustomView:myButton]; 

[buttons addObject:bi]; 
[bi release]; 

myImage = [UIImage imageNamed:@"AL_RX_Icon.png"]; 
myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[myButton setImage:myImage forState:UIControlStateNormal]; 
myButton.showsTouchWhenHighlighted = YES; 
myButton.frame = CGRectMake(0.0, 0.0, myImage.size.width, myImage.size.height); 

[myButton addTarget:self action:@selector(clickViewCustomPopView2) forControlEvents:UIControlEventTouchUpInside]; 

bi = [[UIBarButtonItem alloc] 
     initWithCustomView:myButton]; 

[buttons addObject:bi]; 
[bi release]; 

myImage = [UIImage imageNamed:@"AL_User_Icon.png"]; 
myButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[myButton setImage:myImage forState:UIControlStateNormal]; 
myButton.showsTouchWhenHighlighted = YES; 
myButton.frame = CGRectMake(0.0, 0.0, myImage.size.width, myImage.size.height); 

[myButton addTarget:self action:@selector(clickViewCustomPopView:) forControlEvents:UIControlEventTouchUpInside]; 
bi = [[UIBarButtonItem alloc] 
     initWithCustomView:myButton]; 
[buttons addObject:bi]; 
popButton = myButton; 
[bi release]; 


// stick the buttons in the toolbar 
[tools setItems:buttons animated:NO]; 

[buttons release]; 

// and put the toolbar in the nav bar 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tools]; 
[tools release]; 

希望帮助

Pondd

1

使用两个按钮创建自定义视图,并使用UIBarButtonIteminitWithCustomView:初始值设定项。这应该做到这一点。

2

我通过使用下面的代码实现了我的任务:

UIToolbar *tools=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 150, 44)]; 

tools.backgroundColor=[UIColor clearColor]; 

[tools setTranslucent:YES]; 

UIBarButtonItem *optionBtn=[[UIBarButtonItem alloc]initWithTitle:@"Options" style:UIBarButtonItemStyleBordered target:self action:@selector(optionPressed:)]; 

UIBarButtonItem *doneBtn=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(donePressed:)]; 

NSArray *buttons=[NSArray arrayWithObjects:optionBtn,doneBtn, nil]; 

    [tools setItems:buttons animated:NO]; 

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

注意:从IOS 5.0起,苹果已经做得更容易了。这是可以做到的

self.navigationItem.rightBarButtonItems=[NSArray arrayWithObjects:optionBtn,doneBtn, nil]; 
7

创建一个按钮,

UIBarButtonItem *logoutButton = [[UIBarButtonItem alloc] 
           initWithImage:[UIImage imageNamed:@"logout.png"] 
           style:UIBarButtonItemStylePlain 
           target:self action:@selector(doLogout)]; 

添加该按钮,导航栏

self.navigationItem.rightBarButtonItem = logoutButton; 

的权利或添加此按钮,导航栏的左侧

self.navigationItem.leftBarButtonItem = logoutButton; 

doLogout是一个功能,将在触摸注销按钮上调用

相关问题