que punto nodos nodo mostrar illustrator ancla objective-c ios storyboard uistoryboardsegue

objective-c - nodos - punto de ancla illustrator



¿Hay alguna forma de seleccionar un ancla segue programáticamente? (4)

Tuve el mismo problema cuando estaba creando un BarButtonItem programáticamente. También puede evitarlo creando un botón invisible, deshabilitado, que puede establecer como anclaje en IB.

Supongamos que tengo un Storyboard que contiene una vista que contiene un botón. Cuando el usuario presiona este botón, aparece un popover.

Por lo tanto, necesito establecer un ancla arrastrando el segue al botón usando Xcode (y luego realizoSegueWithIdentifier:) .

Entonces, mi pregunta es: ¿hay alguna manera de establecer este "anclaje" programáticamente?

Gracias.


En mi caso he agregado programáticamente varios UIBarButtonItem. El problema de usar solo una vista invisible como un archor es que, si, como en mi caso, el tamaño del UIBarButtonItem está cambiando su tamaño, la flecha del popover no aparece centrada, y aunque funciona, se ve un poco extraño.

Cómo resolverlo.

Crea una vista pequeña en el guión gráfico (el tamaño no importa), hazlo invisible y vincúlalo. En mi caso, esto se llama invisibleViewAsArchor

Conecte el elemento del botón UIBar con la siguiente acción.

-(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]; } }

como puede ver antes de mostrar el popover (con performSegueWithIdentifier), estoy cambiando el marco del Archor con los valores del botón que ha disparado el evento.

Espero eso ayude.


En el guión gráfico, ancla el popover a algún botón arbitrario. No se preocupe demasiado por cuál será anulado en el código.

En el método de control de vista prepareForSegue, agregue el código:

let dest = segue.destinationViewController dest.popoverPresentationController?.barButtonItem = <your bar button here>

o si desea anclar a una vista en su lugar

dest.popoverPresentationController?.barButtonItem = nil dest.popoverPresentationController?.sourceView = <your view here>