Soy nuevo en el desarrollo de IOS y recientemente comencé en Xcode 4.5. Vi para cada viewController que podía establecer algunas variables de identidad, incluida la ID del guión gráfico. ¿Qué es esto y cómo puedo usarlo?
Comencé a buscar en stackoverflow y no pude encontrar ninguna explicación. Asumí que no es solo una etiqueta estúpida que puedo configurar para recordar mi controlador, ¿verdad? ¿Qué hace?
El ID del guión gráfico es un campo de cadena que puede usar para crear un nuevo ViewController basado en ese ViewController del guión gráfico. Un ejemplo de uso sería desde cualquier ViewController:
//Maybe make a button that when clicked calls this method-(IBAction)buttonPressed:(id)sender
{MyCustomViewController*vc =[self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];[self presentViewController:vc animated:YES completion:nil];}
Esto creará un MyCustomViewController basado en el ViewController del guión gráfico que nombró "MyViewController" y lo presentará sobre su controlador de vista actual
Y si está en el delegado de su aplicación, podría usar
Se puede acceder a self.storyboard desde cualquier viewcontroller. Editaré mi respuesta ahora para que pueda ver
Eric
¿Y si es necesario acceder a él desde mi AppDelegate o cualquier otra clase?
RTB
Se agregó otra edición que muestra cómo acceder al guión gráfico desde cualquier archivo.
Eric
1
self.storyboardse puede acceder desde cualquier controlador de vista que se cargó desde un guión gráfico. Si el controlador de vista no se cargó desde un guión gráfico, esa propiedad es nula.
rob mayoff
13
Para agregar a la respuesta de Eric y actualizarla para Xcode 8 y Swift 3:
Una ID de guión gráfico hace exactamente lo que su nombre implica: identifica. Solo que identifica un controlador de vista en un archivo de guión gráfico. Así es como el guión gráfico sabe qué controlador de vista es cuál.
Ahora, no se confunda con el nombre. Una ID de guión gráfico no identifica un 'guión gráfico'. Un guión gráfico, de acuerdo con la documentación de Apple, "representa los controladores de vista para toda o parte de la interfaz de usuario de su aplicación". Entonces, cuando tiene algo como la imagen a continuación, tiene un guión gráfico llamado Main.storyboard que tiene dos controladores de vista, a cada uno de los cuales se le puede dar una ID de guión gráfico (su ID en el guión gráfico).
Puede usar la ID del guión gráfico de un controlador de vista para crear una instancia y devolver ese controlador de vista. Luego puedes manipularlo y presentarlo como quieras. Para usar el ejemplo de Eric, digamos que desea presentar un controlador de vista con el identificador 'MyViewController' cuando se presiona un botón, lo haría de esta manera:
@IBAction func buttonPressed(sender:Any){// Here is where we create an instance of our view controller. instantiateViewController(withIdentifier:) will create an instance of the view controller every time it is called. That means you could create another instance when another button is pressed, for example.let vc = storyboard?.instantiateViewController(withIdentifier:"MyViewController")as!ViewController
present(vc, animated:true, completion:nil)}
El icono de advertencia amarillo indica que se debe al hecho de que el segundo controlador de vista no tiene punto de entrada y / o ID. Esto se puede solucionar dándole una ID de guión gráfico o conectándolo a otro controlador de vista en el guión gráfico. De esa manera, el guión gráfico sabe cómo alcanzarlo e identificarlo.
Taiwosam
No pude encontrar el campo ID de Storyboard, así que gracias por la imagen. Está en la misma posición en Xcode 9.
self.storyboard
self.storyboard
se puede acceder desde cualquier controlador de vista que se cargó desde un guión gráfico. Si el controlador de vista no se cargó desde un guión gráfico, esa propiedad es nula.Para agregar a la respuesta de Eric y actualizarla para Xcode 8 y Swift 3:
Una ID de guión gráfico hace exactamente lo que su nombre implica: identifica. Solo que identifica un controlador de vista en un archivo de guión gráfico. Así es como el guión gráfico sabe qué controlador de vista es cuál.
Ahora, no se confunda con el nombre. Una ID de guión gráfico no identifica un 'guión gráfico'. Un guión gráfico, de acuerdo con la documentación de Apple, "representa los controladores de vista para toda o parte de la interfaz de usuario de su aplicación". Entonces, cuando tiene algo como la imagen a continuación, tiene un guión gráfico llamado Main.storyboard que tiene dos controladores de vista, a cada uno de los cuales se le puede dar una ID de guión gráfico (su ID en el guión gráfico).
Puede usar la ID del guión gráfico de un controlador de vista para crear una instancia y devolver ese controlador de vista. Luego puedes manipularlo y presentarlo como quieras. Para usar el ejemplo de Eric, digamos que desea presentar un controlador de vista con el identificador 'MyViewController' cuando se presiona un botón, lo haría de esta manera:
Tenga en cuenta los cambios en la sintaxis.
fuente