ios swift xcode uistoryboard uistoryboardsegue

ios - Xcode, donde asignar el identificador de segue



swift uistoryboard (4)

Cuando vincula un controlador de vista a otro controlador de vista en el guión gráfico, en el enlace entre ellos debe asignar un identificador de segue, es decir, "SecondViewController", solo entonces su código funcionará.

Alternativamente, también puede mostrar otro controlador de vista a través de la identificación del guión gráfico usando self.storyboard.instantiateViewControllerWithIdentifier ("// id de guión gráfico de ese controlador de vista") y luego usar el controlador de vista actual / mostrar.

Perdón por la pregunta de principiante. Sé que puedo cambiar a otra pantalla (ViewController) como esta

self.performSegueWithIdentifier ("SecondViewController", sender: self)

pero parece que no puedo encontrar dónde asignar mi identificación a la segunda pantalla, solo encuentro Storyboard ID, ¿es eso?

Ya lo intenté, solo recibí un bloqueo con el siguiente error:

Receiver () no tiene segue con el identificador ''SecondViewController''

¿Alguna idea? Gracias


En su código

self.performSegueWithIdentifier ("SecondViewController", sender: self)

la cadena "SecondViewController" se parece a la id del guión gráfico. En el mismo lugar, debe escribir el identificador de segue, no el id del guión gráfico.

Siga la captura de pantalla y asigne el nombre del identificador de segue haciendo clic en el campo de segue en la barra superior derecha. puedes hacer así

self.performSegueWithIdentifier ("WriteSegueIdentifierName", sender: self)


Puede iniciar viewController de esta manera:

let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Login") self.present(viewController, animated: false, completion: nil)


El Identificador de Segue no es lo mismo que el ID del guión gráfico , el ID del guión gráfico utilizado cuando desea crear un Controlador de vista basado en ese guión gráfico específico, y debe ser único, a diferencia del identificador de segue.

Si ya sabe cómo crear una secuencia, puede omitir esta parte.

Agregar una secuencia entre dos viewControllers:

Desde el generador de interfaces, presione la tecla Ctrl y arrastre entre los dos controladores de vista que desea vincular (asegúrese de arrastrar desde el controlador de vista en sí, no desde la vista principal). Debería ver:

Elija el "Mostrar" -por ejemplo-, la salida debería verse así:

Como se muestra arriba, la flecha que está rodeada por el rectángulo rojo es el segue.

Nota adicional: si seleccionó la opción "Mostrar", debe incrustar su primer controlador de vista en un controlador de navegación (seleccione su primer controlador de vista -> Editor -> Incrustar en -> Controlador de navegación), la salida debería verse así:

Porque "Mostrar" significa empujar a una pila de controlador de navegación.

Asignación de un identificador para el segue:

Seleccione el segue, desde el inspector de atributos verá el campo de texto "Identificador", eso es todo. asegúrese de insertar exactamente el mismo nombre que utilizó en performSegueWithIdentifier .

Si no sabe dónde encontrar el inspector de atributos, se encuentra en la esquina superior derecha:

Además:

Para agregar múltiples segues desde un controlador de vista, siga el mismo proceso ( ctrl + arrastrar desde el primer controlador entre sí), el resultado debería verse así:

En este caso, puede enfrentar el problema de cómo reconocer qué segue se ha realizado, anulando el método prepare(for:sender:) es la solución, puede realizar la comprobación en función de la propiedad del identifier segue:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if (segue.identifier == "firstSegueIdentifier") { // ... } else if (segue.identifier == "secondSegueIdentifier") { //... } }

cuál sería el nombre que ha agregado al segmento en el guión gráfico.