2011-12-08 3 views

risposta

10

Ho fatto un esempio in cui avevo due pulsanti (ad esempio Modifica e +) sul lato destro di NaviagationBar.

1) È necessario creare uno NSMutableArray "bottoni" (cioè in esempio) e aggiungere UIBarButtonItem (vale a dire BI1 e Bi2 in esempio) per i pulsanti (ossia NSMutableArray).

2) Aggiungere NSMutableArray (ad esempio, i pulsanti nell'esempio) alla barra degli strumenti (ad esempio, UIToolbar *tools).

3) Aggiungi barra degli strumenti 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

farlo nel file XI ter e rendere le proprietà o solo variabili nell'intestazione

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

quindi collegarlo nel XI ter. Divertiti con

1

Crea una nuova UIToolbar nel codice e aggiungi i tuoi pulsanti alla barra degli strumenti. Quindi impostare self.navigationItem.rightBarButton alla barra degli strumenti appena creato (notare l'esempio è senza ARC quindi potrebbe essere necessario rimuovere le chiamate a rilasciare):

// 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

Qui ti sto dando il codice di esempio che ho usato per Button così come etichetta. puoi creare pulsante anziché etichetta e immagine ciò che ho creato. Spero che vi aiuterà 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]; 

}

Se qualunque problema di comprensione o altro, allora plz mi informa.