2012-01-13 19 views
55

Quiero cambiar el código a continuación con el guión gráfico con Xcode 4.2.¿Cómo cambio "initwithNibName" en el guión gráfico?

UIViewController * example  = [[ExampleViewController alloc] initWithNibName:@"ExampleViewController" bundle:nil]; 

Ahora existe el archivo ExampleViewController.xib. pero quiero hacerlo con el guión gráfico. por favor ayúdame. (no soy bueno en Inglés. Lo siento)

Respuesta

132

La clase UIStoryboard es su amigo:

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"mystoryboard" 
               bundle:nil]; 
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"ExampleViewController"]; 
+0

Gracias ~ ^^ Tu respuesta es muy útil. – jokor7

+0

Stephen, gracias! He estado buscando bastante tiempo intentando descubrir cómo crear una instancia de la vista de un Guión Gráfico. Su respuesta (y la pregunta de jokor7) son como un vaso de agua fresca en medio del desierto seco del Sahara. – bejonbee

+5

De hecho, es tu amigo. Si solo tiene un guión gráfico principal, no necesita inicializarlo como arriba, pero puede simplemente llamar al: '[self.storyboard instantiateViewControllerWithIdentifier: @" "];' – JCoster22

8
  • Si todavía está en su propio archivo xib, entonces usted no cambia nada.
  • Si ha movido todo a un guión gráfico, a menudo no tendría que hacer esto ya que vincularía los controladores de vista mediante segues.

Si ninguno de los anteriores son verdaderas, es decir, el controlador de vista es en el guión gráfico, pero no segue se conecta a él, a continuación, desea método de UIStoryboard instantiateViewControllerWithIdentifier: describe en the documentation. Debes establecer el identificador en el guión gráfico para que esto funcione.

+0

gracias @jrturton ^^ Mi controlador de vista es en el guión gráfico, pero no segue a ella. Y cambie el código de initWithNibName a 'UIViewController * example = [self.view instantiateViewControllerWithIdentifier: @ "ExampleView"];'. Pero tiene un error. ¿No son iguales ambos códigos? – jokor7

+1

@ jokor7 Usted no envía 'instantiateViewControllerWithIdentifier:' a self.view o cualquier otra vista, lo envía a un guión gráfico. Más específicamente, debe enviarlo al * guión gráfico * que contiene el controlador de vista. Vea la clase UIStoryboard, por favor. – Caleb

+0

@ jokor7 no puede agregar nada más al comentario de Caleb realmente. Con eso y la respuesta de Stephen, deberías tener todo lo que necesitas. – jrturton

Cuestiones relacionadas