2012-01-20 14 views
5

Mam 2 klasy, które dziedziczą UITableViewControllers. A te dwa widoki tabel powinny używać tego samego niestandardowego UITableViewCell. Więc jak mogę użyć niestandardowego UITableViewCell z pliku Nib w dwóch różnych klasach? Właściciel Xib może być tylko 1 klasą.iPhone: Jak korzystać z UITableViewCell w dwóch widokach tabeli

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

Odpowiedz

3

Create a UITableViewController podklasa powiedzieć CommonTableView. Ustaw jako właściciel pliku nib. Następnie dziedzicz dwie klasy, które chcesz zaimplementować z klasy CommonTableView. To zadziała dobrze.

+0

Tak, dobry pomysł. Dzięki – Jim

0

podstawie moim zdaniem, należy utworzyć niestandardowy i komórkę i do drugiej tabeli należy utworzyć tylko XIb do tego i korzystać .h i .m plik sama ...

tylko kontroler zmiana XIB ...

nadzieję, że rozumiesz ..

Zobacz ten How to create Customcell i this

+0

Nie rozumiem tego. Chcesz utworzyć klasę dziedziczącą po UITableViewCell (Lats nazwał ją CustomCellClass), a ta klasa będzie właścicielem Xib? A w Class1 i Class2 wystarczy utworzyć instancję CustomCellClass? – Jim

0

Korzystając UINib class . Umożliwia instancję bez rodzica, a także poprawia wydajność poprzez buforowanie zawartości pliku nib.

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

... i podobnie dla Class2. Następnie w viewDidLoad

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

następnie, podczas tworzenia komórek:

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