2011-05-25 4 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

Создайте пользовательский вид с помощью двух кнопок и используйте Инициализатор. Это должно сделать это.

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 - это функция, которая будет вызываться при нажатии кнопки выхода из системы

Смежные вопросы