Tengo una base de controlador de vista de clase que hereda de UIViewController y una clase heredada de la base viewcontroller clase. Ahora tengo un one, cuyo responsable del fichero es la clase heredada, pero todas mis acciones y tomas de corriente están en la clase base. Es incluso posible conectar la acción\outlet en el archivo nib para que en la clase base?

  • Sí. Son todos sus archivos en el mismo proyecto en Xcode?
InformationsquelleAutor FatalError | 2012-04-18

3 Comentarios

  1. 30

    Voy a ser, básicamente, explicar por ejemplo:

    Definir una clase base (vamos a llamar a BaseViewController) y asignar un UITableView IBoutlet en el .h archivo:

    // BaseViewController.h
    @interface BaseViewController : UIViewController    
    @property (weak, nonatomic) IBOutlet UITableView *tableView;    
    @end

    Definir dos niños de las clases (es decir, FirstChildViewController y SecondChildViewController):

    //FirstChildViewController.h
    @interface FirstChildViewController : BaseViewController
    @end
    
    //SecondChildViewController.h
    @interface SecondChildViewController : BaseViewController
    @end

    Ahora para hacer cualquiera de ellos (o ambos) de los niños de las clases de uso de la iboutlet de la clase base, basta con arrastrar la referencia de corriente para la definición de la propiedad en la clase base .h archivo.. y eso es todo!

    cómo conectarse a IBOutlet o IBAction en la clase base

    aquí es un proyecto completo que ilustra esto.

    • hmm.. esto no parece estar trabajando para swift
  2. 7

    Dos maneras de lograr esto:

    1)

    hacerlo mediante programación (es decir, en el código)

    Primero declarar sus puntos de venta en la clase base.

    y, a continuación, asignar sus puntos de venta a través de código en la clase heredada.

    y

    2)

    También puede asignar sus puntos de venta y acciones en el archivo XIB. Xcode sabe sobre heredado de los outlets y las acciones de las clases base.

  3. 5

    Si la clase base está en un Swift marco, entonces, a veces, Xcode 7 no ver los puntos de venta, incluso si la clase base y sus puntos de venta son públicos. En este caso la solución es la siguiente:

    1. En IB establecer el control para el uso de la clase base
    2. Conectar las salidas
    3. En IB establecer el control para el uso de la clase derivada

    IB show «!» junto a las salidas, ya que si faltan, pero no habrá errores en tiempo de ejecución.

    Si alguien tiene una solución mejor, que me haga saber!

    • ¿Puedes explicar un poco más detallado de cómo hacer estas cosas?
    • Abierto Guión Gráfico. Mostrar La Identidad Del Inspector. Seleccione control. Establece su clase a clase base. Conecte los enchufes. Seleccione mismo control y el conjunto de la clase a clase derivada. Ignorar las advertencias.
    • hmm.. esto parece hackish.. es permitido? o es algo que va a romper más tarde
    • Este es, de hecho, hackish. Por suerte Xcode 7.3 parece encontrar siempre los puntos de venta, así que espero que usted no necesita hacer esto.

Dejar respuesta

Please enter your comment!
Please enter your name here