present instantiateviewcontrollerwithidentifier change ios xcode uiviewcontroller storyboard

ios - change - instantiateviewcontrollerwithidentifier swift



Mueve o copia el controlador de vista de un guión gráfico a otro (9)

Tengo varios UIViewControllers en un Storyboard. Ahora quiero mover algunos UIViewControllers a otro Storyboard. ¿Es posible?


Copiar y pegar (Comando + C, Comando + V) funciona bien, pero recuerde resolver las conexiones de salida porque Xcode parece mantener las conexiones originales: cerrar / reabrir el proyecto, eliminar lo que está mal y restablecer las conexiones que faltan.


Creo que es posible....

UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"secondStoryBoard" bundle:nil]; UIViewController *theTabBar = [secondStoryBoard instantiateViewControllerWithIdentifier:@"myTabBar"]; [self.navigationController pushViewController:theTabBar animated:YES];


En Xcode 8, si desea mover específicamente los controladores de vista a otro guión gráfico, simplemente seleccione los controladores de vista que desea mover con Cmd + haga clic en el controlador de vista. Manteniéndolos seleccionados, ve a la pestaña Editor y elige Refactor to Storyboard. Le preguntará el nombre del nuevo archivo de guión gráfico y presione Entrar.

Se creará un nuevo archivo de guión gráfico con sus controladores de vista seleccionados. En Main.storyboard, verá un objeto de referencia de Storyboard en lugar de ese controlador de vista, que es su referencia al nuevo storyboard que acaba de crear.


Es posible copiar / pegar, pero solo funciona si tiene ambos Guiones gráficos abiertos uno al lado del otro con el Editor Asistente de Xcode.


Es posible copiar, pero tiene que abrir ambos guiones gráficos a la vez en un proyecto, y luego copiar y pegar.


He llegado a una situación similar, en la que en mi guión gráfico principal tengo demasiadas escenas y necesito refactorizarlas. La idea que tuve al principio fue marcar varios y copiar y pegar como sugerido por muchos. Sin embargo, me preocupaba cualquier resolución de las conexiones del guión gráfico al código de los controladores de vista. Después de mucho buscar encontré que desde iOS 9 hay una nueva característica disponible para "Refactor to Storuboard". Puede marcar varias escenas en su guión gráfico de origen y puede seleccionar esa opción del menú Editor. Luego, todas las escenas seleccionadas se extraen de su guión gráfico anterior, se crea un guión gráfico nuevo y un enlace al mismo en el guión gráfico antiguo / principal. Totorials útiles son: https://code.tutsplus.com/tutorials/ios-9-staying-organized-with-storyboard-references--cms-24226 https://www.raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards

Espero que esta nueva funcionalidad oficial de refactorización del guión gráfico pueda proporcionar una mejor solución a este tipo de problemas.


Los elementos de la interfaz se pueden mover entre los archivos Xib y Storyboard mediante Copiar / Pegar .

Esto no estaba funcionando originalmente para mí. Estaba intentando copiar un UICollectionViewCell de un Xib dedicado a nuestro Guión gráfico principal. La celda no se copiaría en el Storyboard.

La solución fue seleccionar el elemento padre específico en el guión gráfico. El UICollectionViewCell se puede pegar como un elemento secundario de un UICollectionView en el guión gráfico, pero de lo contrario no se puede pegar.

Si tiene problemas para pegar un elemento específico, asegúrese de volver a verificar que ha seleccionado un elemento principal válido antes de intentar pegar.


Sí, es posible.

  1. Seleccione los controladores que desea copiar
  2. Presiona Comando + C
  3. Abre tu segundo archivo de guión gráfico
  4. Presiona Comando + V

Nota: "IBOutlets permanece tal como está después de la copia (Verificado en Xcode 6.3.2)".


Si el uso de Cut-n-Paste falla por usted, hay una solución alternativa. Pegar fallará si ahora hay ViewController en el archivo que se está pegando. Eso hace que sea imposible seleccionar el guión gráfico para pegar. XCode se negará a pegar. Por lo tanto, primero debe arrastrar un controlador de vista vacío al guión gráfico desde la biblioteca. Luego seleccione este viewController en el guión gráfico y luego la pegadura funcionará. Una vez que haya terminado de pegar, puede eliminar el controlador de vista ficticio. No lo necesitarás de nuevo.