Domanda

Ho cercato in giro un capito come aggiungere un elemento UISegmentedControl alla voce pulsante di barra di navigazione (tasto destro del bar). Funziona bene nel simulatore, ma quando provo sul dispositivo, solo il primo elemento negli spettacoli di controllo segmentati in su. Occupa tutta la lunghezza (vale a dire non v'è solo un segmento in tutta la cosa).

- (void) setupSegmentedControl {
//set up the segmented control and add it to the nav bar rightBartButtonItem
UISegmentedControl * segmentControl = [[UISegmentedControl alloc] initWithItems:[NSArray         arrayWithObjects:[UIImage imageNamed:@"Settings.png"],[UIImage imageNamed:@"Map-Icon.png"],[UIImage imageNamed:@"Search.png"], nil]];
UIBarButtonItem * segmentControlButton = [[UIBarButtonItem alloc] initWithCustomView:segmentControl];
[segmentControl setBackgroundColor:[UIColor clearColor]];
segmentControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentControl.frame = CGRectMake(0, 0, 75, 30);
[segmentControl setMomentary:YES];
[segmentControl addTarget:self
                   action:@selector(segmentedControlAction:)
         forControlEvents:UIControlEventValueChanged];
self.navigationItem.rightBarButtonItem = segmentControlButton;
[segmentControl release];

}

Tutte le idee che vanno male?

È stato utile?

Soluzione

Assicurarsi che i nomi dei file immagine corrispondono esattamente con i nomi delle risorse nel progetto, tra cui le lettere maiuscole / minuscole.

Il dispositivo è sensibile caso e se il nome non corrisponde, imageNamed: tornerà nil chiude l'array.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top