ios - from - ¿Cuál es el propietario de File en XIB en este caso?
uiview from xib swift 4 (1)
He buscado preguntas similares durante bastante tiempo, la mayoría de las cuales mencionaban las cosas xib de UIViewController. Traté de agregar un archivo xib para mi modelo personalizado de viewController, y encontré que el propietario del archivo de Xib debería ser la clase de mi modelo de control personalizado, eso es razonable. Pero por qué la situación difiere cuando creo un xib para mi modelo UIView , un ejemplo de la siguiente manera:
Creé mi modelo UIView que nombró "KWView" (KWView.hy KWView.m) luego creé xib para este modelo, inicializándolo por
KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject];
El nombre de este propietario de archivo Xib es "NSObject" (entonces intento cualquier otro más, lo que yo elija, funciona sin problemas) , y allí, elijo la clase personalizada de la vista como "KWView" [Este xib llamado "KWView.xib"]
Las preguntas son:
1.Cualquiera que cambie el nombre del propietario del archivo Xib de mi vista personalizada, funciona. Si es así, ¿qué trabajo hace este propietario del archivo aquí, o diciendo, por qué puede suceder esto?
2. Por lo general, ¿debo establecer el propietario del archivo Xib de la vista personalizada en la clase de mi vista personalizada o en la clase viewController a la que se agregará esta vista? o simplemente configúralo como "NSObject"?
La respuesta a su pregunta depende de cómo piense extraer la vista desde el plumín en el momento de cargar plumilla. Vas a extraerlo, como nos has mostrado amablemente, así:
KWView *oneView =
[[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil]
lastObject];
Eso significa que no está usando el owner:
para nada aquí, es nil
. Por lo tanto, puede dejar el propietario del archivo del plumín en NSObject.
El propósito del propietario del archivo es permitirle establecer, en el plumín, conexiones de acción y salida entre la vista (o sus subvistas) y el objeto que será el verdadero propietario en el momento de la carga, como un controlador de vista (propietario) y su view
(la vista principal del controlador de vista). Pero en su caso, no existe tal propietario real y no existen tales conexiones de Acción o Salida.