2012-01-20 22 views
5

Tengo 2 clases que heredan UITableViewControllers. Y estas dos vistas de tabla deberían usar la misma UITableViewCell personalizada. Entonces, ¿cómo puedo usar una UITableViewCell personalizada desde un archivo Nib en dos clases diferentes? El propietario del xib solo puede ser de 1 clase.iPhone: cómo usar UITableViewCell en dos vistas de tabla

@interface Class1 : UITableViewController<UITableViewDataSource, 
    UITableViewDelegate> { 
UITableViewCell *myCustomTableRow; 
} 

@property (nonatomic, retain) IBOutlet UITableViewCell *myCustomTableRow; 





@interface Class2 : UITableViewController<UITableViewDataSource, 
    UITableViewDelegate> { 
UITableViewCell *myCustomTableRow; 
} 

@property (nonatomic, retain) IBOutlet UITableViewCell *myCustomTableRow; 

Respuesta

3

Crear una subclase UITableViewControllerCommonTableView dicen. Haga esto como el propietario del archivo nib. A continuación, herede las dos clases que desea implementar desde la clase CommonTableView. Esto funcionará bien.

+0

Sí, buena idea..Gracias – Jim

0

Basado en mi opinión, usted debe tener para crear celdas personalizado y de otra mesa y que debe tener para crear solamente XI ter para eso y utilizar .hy archivo .m misma ...

solo controlador de cambio en el XI ter ...

esperamos que entienda ..

Ver este How to create Customcell y this

+0

No lo entiendo. ¿Quiere crear una clase que herede de UITableViewCell (Lats lo denominó CustomCellClass) y esa clase será la propietaria de xib? Y en Class1 y Class2 solo crea una instancia de CustomCellClass? – Jim

0

uso UINib class . Permite la creación de instancias sin padres y también mejora el rendimiento al almacenar en caché los contenidos del archivo nib.

@interface Class1 : UITableViewController<UITableViewDataSource, UITableViewDelegate> { 
    UINib *myCustomCellNib; 
} 

... y lo mismo para Class2. Luego, en viewDidLoad

myCustomCellNib = [UINib nibWithNibName:@"myCustomCellNibName" bundle:nil]; 

entonces, cuando la creación de la célula:

NSArray* objects = [myCustomCellNib instantiateWithOwner:nil options:nil]; 
// given that your cell is defined as a first object in your nib 
cell = [objects objectAtIndex:0]; 
Cuestiones relacionadas