solid color change bar ios xcode uiview uiviewcontroller uistoryboard

ios - color - set navigation bar swift



¿Hay alguna manera de ''diseñar'' una UIView personalizada en el guión gráfico y usarla en múltiples ViewControllers sin agregar ningún controlador específico? (2)

No creo que puedas crear una UIView personalizada en el guión gráfico. Entonces, en este caso, puede crear un archivo xib para esa vista personalizada. Luego, cuando quieras usar esa vista, solo usa

UIView *customView = [[[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil] objectAtIndex:0];

para obtener esa vista.

Necesito una UIView personalizada que se use en múltiples ViewControllers diferentes. Por lo general, cuando creo una UIView personalizada, arrastro una instancia de UIView en mi ViewController en el guión gráfico, creo una subclase de UIView y UIView esta subclase en el Identity Inspector para la vista. A partir de ahí, conectaría los objetos UI como salidas al archivo de encabezado de la subclase.

La vista que quiero hacer ahora, no se supone que sea parte de ningún controlador específico, sino que debe agregarse a cualquier controlador que la solicite. Un pícaro UIView . Sé que puedo crear todo el UIView programación, y solo crear una instancia del mismo, pero me gustaría tenerlo (y diseñarlo) en mi guión gráfico.

En Storyboard, los únicos objetos que puedo arrastrar "fuera de ViewController" son otros ViewControllers.

Nunca he usado otra cosa que Storyboard para el desarrollo de iOS, pero he venido a tutoriales que han estado usando el otro modo, de los viejos tiempos , que se parece a lo que necesito. ¿Es posible obtener algo similar en mi guión gráfico? ¿O requeriría esto su propia configuración / diseño? ¿Si es así, cómo?

También estaba pensando en resolver esto con la adición de un "fantasma" UIViewController contiene mi vista personalizada; diseñarlo allí, pero crear una instancia de los otros controladores, pero esto suena tan raro ...

Me gustaría hacer esto con una UITableViewCell también, pero supongo que tendría la misma solución.


Para su UIView, debe crear un UIViewController personalizado en su guión gráfico y crear una instancia del controlador de vista para acceder a la vista:

MyViewController *myViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"]; // Access the view using "myViewController.view"

Esta es una práctica muy común en iOS desde que se presentaron los guiones gráficos. Si está utilizando varios guiones gráficos, debe crear una nueva instancia de UIStoryBoard con:

UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"StoryboardName" bundle:nil];

Y luego crea una instancia del controlador de vista con esta instancia del guión gráfico.

Si desea utilizar únicamente UIView, debe crear un archivo .xib, es decir, el formato de días anteriores . Para crear una UITableViewCell personalizada, usaría absolutamente un archivo .xib. Su última opción sería crear un UIView mediante programación, que podría ser llamado desde cualquier lugar de su aplicación. Dependiendo de la complejidad de esta vista, esta puede ser una opción válida.