Ecco una soluzione di bell'aspetto che penso copre tutti i punti sollevati nei commenti sopra. Simile alla risposta accettata, ma questo approccio include spaziatura aggiuntiva (tramite la modifica della cornice) in modo che il pulsante non venga sfasciato contro il bordo destro.
// Create the info button
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
// Adjust the frame by adding an addition 10 points to its width so the button is padded nicely
infoButton.frame = CGRectMake(infoButton.frame.origin.x, infoButton.frame.origin.y, infoButton.frame.size.width + 10.0, infoButton.frame.size.height);
// Hook the button up to an action
[infoButton addTarget:self action:@selector(showInfoScreen) forControlEvents:UIControlEventTouchUpInside];
// Add the button to the nav bar
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
// Also make sure to add a showInfoScreen method to your class!
fonte
2013-04-10 07:36:39
brillante, grazie Reena. L'ho contrassegnato come la risposta accettata, ma se fossi così gentile da perdonare la mia sfacciataggine, posso chiederti come si potrebbe portare il bottone info a sinistra di cinque pixel o così? Aggiungendolo come elemento pulsante della barra destra significa che è abbastanza schiacciato contro il lato destro dello schermo. –
utilizzando la proprietà 'leftBarButtonItem' che è possibile impostare a sinistra self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: btn]; – Reena
Mi dispiace Reena. Lo voglio come elemento pulsante della barra di destra, voglio solo aggiungere un po 'di spazio a destra (portando quindi il tasto destro di 5px a sinistra). È possibile? –