2012-01-20 15 views
5

Ho due classi che ereditano UITableViewControllers. E queste due tabelle dovrebbero utilizzare lo stesso UITableViewCell personalizzato. Quindi, come posso utilizzare un UITableViewCell personalizzato da un file pennino in due classi diverse? Il proprietario dello xib può essere solo 1 classe.iPhone: Come utilizzare UITableViewCell in due visualizzazioni tabella

@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; 

risposta

3

Creare un UITableViewController sottoclasse dicono CommonTableView. Rendi questo come il proprietario del file pennino. Quindi eredita le due classi che desideri implementare dalla classe CommonTableView. Questo funzionerà bene.

+0

Sì, buona idea..Grazie – Jim

0

In base a mio parere, si dovrebbe avere per creare cellule personalizzate e per altra tabella si dovrebbe avere per creare un solo XIB per questo e utilizzare .he di file .m stesso ...

solo controllore di cambiamento in XIB ...

Spero che tu capisca ..

Vai a questa How to create Customcell e this

+0

Non capisco. Dovresti creare una classe che erediti da UITableViewCell (Lats la chiama CustomCellClass) e quella classe sarà proprietaria di xib? E in Class1 e Class2 devi solo creare un'istanza di CustomCellClass? – Jim

0

Usa UINib class . Consente l'istanziazione senza genitore e migliora anche le prestazioni memorizzando nella cache il contenuto del file del pennino.

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

... e la cosa simile per Class2. Poi, in viewDidLoad

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

poi, durante la creazione della cellula:

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