new for compilador ios xcode cocoa-touch storyboard

ios - for - UIView fuera de un controlador de visualización en un guión gráfico



xcode version for ios 12 (3)

Tengo una pregunta en la que no puedo encontrar una respuesta en la documentación oficial, en Stackoverflow o en Google.

Soy un desarrollador con experiencia en iOS pero nuevo en Storyboards. Me gustaría crear una instancia de una vista en el viewcontroller actual, una vista que, en un NIB, dibujaría fuera del viewController y adjuntaré una salida para referirme a él en el código y llamar algo así como addSubview: más o menos. Es útil dibujar una superposición o, en mi caso actual, una vista de leyenda para usar en un delegado de MapView. Pero no puedo entender cómo puedo hacer esto en un Storyboard.

Parece que no tengo una vista fuera de un controlador de visualización, y las vistas dentro del controlador de vista tienen que ser subvistas de la vista del controlador o no estar visibles en el Constructor de interfaz (lo cual está bien cuando arrastra una vista compuesta afuera , en un NIB tradicional, pero es un gran problema si necesita retocar incluso el mínimo detalle del mismo).

¿Alguna pista sobre qué hacer o dónde buscar? Gracias.


Me preguntaba lo mismo, y en realidad pude lograr que esto sucediera, aunque después de perder el tiempo, se fue. Tengo un controlador de navegación, un controlador de vista y dos vistas. Desarrollé las vistas en una punta separada y las importé a este proyecto. Mientras estaba conectando botones, la vista en la que estaba trabajando apareció de repente junto a mi Controlador de Vista. Lamentablemente, al intentar que aparezca la otra vista, de alguna manera la perdí y no sé cómo recuperarla. No parece que puedas arrastrar una vista al guión gráfico, solo a un controlador de vista. Sin embargo, si pude hacerlo una vez, tiene que ser reproducible.


Parece que no hay forma de hacerlo. Vea el comentario de Jason y esta pregunta que aborda el mismo problema, aunque en un contexto diferente.

Sin embargo, me di cuenta antes al pensar sobre las implicaciones de mi problema, como comencé a explicar en mi comentario anterior antes de decidir que valdría la pena una respuesta completa, tiene sentido separar el diseño de una vista personalizada del diseño de una aplicación fluir. Por lo tanto, el hecho de que no sea posible diseñar vistas personalizadas en Storyboards puede muy bien ser ... por diseño.

Una vista personalizada (que es un componente reutilizable) es muy diferente de un controlador de vista (que representa una escena en el guión gráfico de la aplicación). Es lo mismo que un personaje y una escena, en una película. No desea diseñar su personaje en su escena, incluso si usa ese personaje en una sola escena. Es fortuito si lo usas en una sola escena, pero no es esencial. Entonces tiene que estar separado.

El hecho de que quiera usar Interface Builder para diseñar su vista personalizada es solo un detalle de implementación que debe ser encapsulado en su clase. El guión gráfico de la aplicación no tiene necesidad de conocer, incluso menos de gestionar, cómo maneja la implementación particular de su vista reutilizable.

Hmm, me gustaría tener más de esta clase de interrogatorio :)


Puede usar una Vista de contenedor, es como una vista normal (Puede asignar una IBOutlet UIView) pero puede definirla fuera de su UIViewController.