2011-12-08 24 views

Respuesta

10

Hice un ejemplo en el que tenía dos botones (es decir, Editar y +) en el lado derecho de NaviagationBar.

1) Tienes que crear una NSMutableArray ("botones" es decir, en el ejemplo) y añadir UIBarButtonItem (es decir bi1 y bi2 en el ejemplo) a los botones (es decir NSMutableArray).

2) Agregue NSMutableArray (es decir, botones en el ejemplo) a la barra de herramientas (es decir, UIToolbar *tools en el ejemplo).

3) Agregue la barra de herramientas a NavigationBar.

NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity:2]; 
UIToolbar *tools = [[UIToolbar alloc] 
        initWithFrame:CGRectMake(0.0f, 0.0f, 90.0f, 55.01f)]; 
// Add bar button1. 

UIBarButtonItem *bi1 = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStylePlain target:self action:@selector(Edit:)]; 
bi1.style = UIBarButtonItemStyleBordered; 
bi1.width = 45; 
[buttons addObject:bi1]; 
//[bi1 release]; Do not release if ARC enabled. 

// Add bar button2. 
UIBarButtonItem *bi2 = [[UIBarButtonItem alloc] initWithTitle:@"+" style:UIBarButtonItemStylePlain target:self action:@selector(Add:)]; 
bi2.style = UIBarButtonItemStyleBordered; 
[buttons addObject:bi2]; 
//[bi2 release]; Do not release if ARC enabled. 

// Add buttons to toolbar and toolbar to nav bar. 
[tools setItems:buttons animated:NO]; 
//[buttons release]; Do not release if ARC enabled. 

// Add toolbar to nav bar. 
UIBarButtonItem *twoButtons = [[UIBarButtonItem alloc] initWithCustomView:tools]; 
[tools release]; 
self.navigationItem.rightBarButtonItem = twoButtons; 
//[twoButtons release]; Do not release if ARC enabled. 
1

lo hacen en su archivo xib y crea propiedades o sólo las variables en la cabecera

@property (nonatomic, retain) IBOutlet UIBarButtonItem *itemOne; 

y luego conectarlo en el XI ter. Disfrute

1

Cree una nueva UIToolbar en el código y agregue sus botones a la barra de herramientas. A continuación, establezca self.navigationItem.rightBarButton a su barra de herramientas de nueva creación (obsérvese el ejemplo es sin ARC por lo que puede que tenga que eliminar para liberar las llamadas):

// create a toolbar to have two buttons in the right 
UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 100, 44.01)]; 

// create the array to hold the buttons, which then gets added to the toolbar 
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3]; 

// create a standard "add" button 
UIBarButtonItem* bi = [[UIBarButtonItem alloc] 
         initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addRow)]; 
bi.style = UIBarButtonItemStyleBordered; 
[buttons addObject:bi]; 
[bi release]; 

// create a spacer 
bi = [[UIBarButtonItem alloc] 
     initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
[buttons addObject:bi]; 
[bi release]; 

[buttons addObject:self.editButtonItem]; 

// 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]; 
1

Aquí os estoy dando código de ejemplo que he utilizado para el botón así como la etiqueta. puede crear un botón en lugar de una etiqueta e imagen de lo que creé. Espero que le ayudará a

- (void) setLabelForPotraite { 

    bar = [self.navigationController navigationBar];  
    [bar setBackgroundColor:[UIColor clearColor]]; 
    barImg=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"navImg.png"]]; 
    [bar addSubview:barImg]; 


    tick_img_lbl=[[UIImageView alloc]initWithFrame:CGRectMake(86, 6,34, 33)]; 
    tick_img_lbl.image=[UIImage imageNamed:@"tick-1.png"]; 
    [bar addSubview:tick_img_lbl]; 
    [tick_img_lbl release]; 

    tickCount_lbl=[[UILabel alloc] initWithFrame:CGRectMake(126, 2, 50, 40)]; 
    [email protected]""; 
    tickCount_lbl.font=[UIFont fontWithName:@"Arial" size:24.0]; 
    [tickCount_lbl setTextAlignment:UITextAlignmentCenter]; 
    tickCount_lbl.font = [UIFont boldSystemFontOfSize:24.0]; 
    tickCount_lbl.textColor=[UIColor whiteColor]; 
    tickCount_lbl.backgroundColor=[UIColor clearColor]; 
    [bar addSubview:tickCount_lbl]; 
    [tickCount_lbl release]; 

    cross_img_lbl=[[UIImageView alloc]initWithFrame:CGRectMake(181, 6, 34, 33)]; 
    cross_img_lbl.image=[UIImage imageNamed:@"x_green.png"]; 

    [bar addSubview:cross_img_lbl]; 
    [cross_img_lbl release]; 

    crossCount_lbl=[[UILabel alloc] initWithFrame:CGRectMake(221, 2, 50, 40)]; 
    [email protected]""; 
    crossCount_lbl.font=[UIFont fontWithName:@"Arial" size:24.0]; 
    crossCount_lbl.font = [UIFont boldSystemFontOfSize:24.0]; 
    crossCount_lbl.textColor=[UIColor whiteColor]; 
    [crossCount_lbl setTextAlignment:UITextAlignmentCenter]; 
    crossCount_lbl.backgroundColor=[UIColor clearColor]; 
    [bar addSubview:crossCount_lbl]; 
    [crossCount_lbl release]; 

    master_img_lbl=[[UIImageView alloc]initWithFrame:CGRectMake(269, 6, 34, 33)]; 
    master_img_lbl.image=[UIImage imageNamed:@"thumb.png"]; 
    [bar addSubview:master_img_lbl]; 
    [master_img_lbl release]; 

}

Si cualquier problema en la comprensión o más, entonces PLZ me informan.

Cuestiones relacionadas