Nel mio caso ho aggiunto più UIBarButtonItem a livello di codice. Il problema di usare solo una vista invisibile come un archor è che, se come nel mio caso, la dimensione di UIBarButtonItem sta cambiando le sue dimensioni, la freccia del popover non appare centrata, e sebbene funzioni, sembra un po 'strana.
Come risolverlo.
Creare una vista piccola nello storyboard (la dimensione non ha molta importanza), renderla invisibile e collegarla. Nel mio caso si chiama invisibleViewAsArchor
Collegare l'elemento UIBarbutton con la seguente azione.
-(IBAction) showMyPopover:(id)sender {
if([self.popoverController isPopoverVisible])
{
[self.popoverController dismissPopoverAnimated:YES];
}else{
self.invisibleViewAsArchor.frame = CGRectMake([sender view].frame.origin.x,
[sender view].frame.origin.y-50,
[sender view].frame.size.width,
[sender view].frame.size.height);
[self performSegueWithIdentifier:@"segue_to_something" sender:self];
}
}
come si può vedere prima che mostra la popover (con performSegueWithIdentifier), sto cambiando il telaio del Archor con i valori del pulsante che ha generato l'evento.
Spero che aiuti.
Hi @GUiLTY, quindi sto avendo lo stesso problema . Mi chiedevo se "invisibleViewAsArchor" è una classe che devo fare per quella vista? – gdubs
Hi @gdubs "invisibleViewAsAnchor" è una visualizzazione standard e dentro - (void) {viewDidLoad \t // dopo il codice ... \t self.invisibleViewAsArchor.nascosto = TRUE; } – MiQUEL
Ottimizzazione piccola (piccola): non è necessario il "ritorno" lì dentro :) – narco