risposta

0

quanto la documentazione per UINavigationItem1 descrive, si ha una proprietà rightBarButtonItems (così come leftBarButtonItems), dove si può dare una serie di UIBarButtons. Sono visualizzati da destra (indice 0) a sinistra (indice n-1).

+0

ho chiaramente specificato che la mia applicazione si rivolge IOS 4. self.navigationItem.rightBarButtonItems sta lavorando da IOS 5 in poi – Raj

+0

@ user1626799: IOS5 avvicinò marzo 2012. 'rightBarButtonItems'exist da Ottobre 2011 (almeno, se la revisione docu è corretto) – Matthias

+0

@Matthais: l'ho testato e non funziona in IOS 4. Quindi per quanto ne so non funziona in IOS 4. U può anche seguire il commento qui sotto da BornCoder – Raj

0

Se l'applicazione è destinata a iOS 4 e versioni successive, è necessario utilizzare UISegmentControl e disporre di due segmenti. Evento di azione cambiata valore di cattura e controllare quale segmento è selezionato e si opera di conseguenza.

È inoltre possibile impostare le immagini sui segmenti per migliorare l'aspetto.

+0

Puoi per favore fare un esempio – Raj

0

@Matthias, come indicato nella documentazione, rightBarButtonItems proprietà è disponibile da iOS 5 e superiori e questa funzione deve essere supportata anche su iOS 4.

Quindi, UISegmentControl è il modo migliore per raggiungere questo obiettivo.

+0

puoi per favore darmi un esempio su come usare UISegmentControl per raggiungere il mio compito. – Raj

14

Questo codice farà il trucco per voi,

NSArray *tempArray2= [[NSArray alloc] initWithObjects:self.addButton,self.sortbyButton,nil]; 
self.navigationItem.rightBarButtonItems=tempArray2; 

dove addButton e SortByButton sono 2 articoli BarButton separati

+0

self.navigationItem.rightBarButtonItems funziona da IOS 5 in poi. Non funzionerà per IOS 4. La mia app si rivolge a IOS 4 – Raj

0
NSArray *segmentTextContent = [NSArray arrayWithObjects: 
           NSLocalizedString(@\"Group By\", @\"\"), 
           NSLocalizedString(@\"Filter By\", @\"\"), 
           nil]; 
UISegmentedcontrol *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent]; 
segmentedControl.selectedSegmentIndex = 0; 
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
segmentedControl.frame = CGRectMake(0, 0, 125, 30); 
[segmentedControl addTarget:self action:@selector(toggleUnit) forControlEvents:UIControlEventValueChanged]; 

segmentedControl.tintColor = [UIColor lightGrayColor]; 
defaultTintColor = [segmentedControl.tintColor retain]; 

self.navigationItem.rightBarButtonItem = segmentedControl; 
[segmentedControl release]; 

+0

Ho raggiunto il mio compito utilizzando la barra degli strumenti, invece del controllo Segmentato – Raj

+0

Intendi dire che hai sostituito l'intera barra di navigazione con la barra degli strumenti. è? O hai aggiunto la barra degli strumenti a UINavigationBar? – BornCoder

+0

Ho aggiunto la barra degli strumenti alla barra di navigazione – Raj

2

So che è troppo tardi, ma ho dovuto affrontare è recentemente. Quindi ecco cosa ho fatto Creare un UIView nel codice e aggiungere i pulsanti come subviews in questa vista. Creare un ToolbarButton utilizzando [[UIBarButtonItem alloc] initWithCustomView: pulsanti]

Assegnare questo pulsante della barra degli strumenti come l'oggetto di comando sinistro o destro come desiderato.

Problemi correlati