2009-11-05 14 views

risposta

14

Vuoi utilizzare Interface Builder o farlo solo in codice?

Con l'operazione IB è molto semplice, è sufficiente trascinare il controllo segmentato per posizionare sulla barra di navigazione in cui si trova il titolo. Il titolo sarà sostituito dal controllo segmentato.

Se si desidera ottenere questo codice, fare riferimento a this section of iPhone reference library. Sembra che sia necessario impostare la proprietà titleView dell'articolo di spostamento sul controllo segmentato, che è una sottoclasse di UIView, quindi è completamente legale.

+1

ti dispiacerebbe aggiornare il collegamento, come è superata? grazie – xon1c

+0

@ xon1c: ok, fatto – madej

1

in viewDidLoad:

obj-c:

NSArray *segmentTitles = @[ 
    @"segment1", 
    @"segment2", 
]; 

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTitles]; 
segmentedControl.selectedSegmentIndex = 0; 
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
// change the width from 400.0 to something you want if it's needed 
segmentedControl.frame = CGRectMake(0, 0, 400.0f, 30.0f); 
[segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged]; 

self.navigationItem.titleView = segmentedControl; 

rapida:

let segmentTitles = [ 
    "segment1", 
    "segment2", 
] 

let segmentedControl = UISegmentedControl(items: segmentTitles) 
segmentedControl.selectedSegmentIndex = 0 
segmentedControl.autoresizingMask = UIViewAutoresizing.FlexibleWidth 
// change the width from 400.0 to something you want if it's needed 
segmentedControl.frame = CGRectMake(0, 0, 400.0, 30.0) 
segmentedControl.addTarget(self, action: "segmentChanged:", forControlEvents: UIControlEvents.ValueChanged) 

self.navigationItem.titleView = segmentedControl 
Problemi correlati