2012-01-20 1 views
5

У меня есть 2 класса, которые наследуют UITableViewControllers. И в этих двух табличных представлениях должен использоваться один и тот же пользовательский UITableViewCell. Итак, как я могу использовать пользовательский UITableViewCell из файла Nib в двух разных классах? Владельцем xib может быть только 1 класс.iPhone: как использовать UITableViewCell в двух табличных представлениях

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

ответ

3

Создать UITableViewController подклассу сказать CommonTableView. Сделайте это как владелец файла nib. Затем наследуйте два класса, которые вы хотите реализовать, от класса CommonTableView. Это будет работать нормально.

+0

Да, хорошая идея .. Спасибо – Jim

0

Основываясь на мой взгляд, Вы должны создать Выборочная ячейку и и для другой таблицы, которую вы должны создать только XIB для этого и использовать .h и .m файл же ...

просто контроллер изменения XIB ...

Надеюсь, вы понимаете ..

How to create Customcell Смотрите этот и this

+0

Я не понимаю. Вы хотите создать класс, который наследуется от UITableViewCell (Lats назвал его CustomCellClass), и этот класс будет как владелец xib? А в Class1 и Class2 просто создайте экземпляр CustomCellClass? – Jim

0

использование UINib class , Он позволяет создавать экземпляры без родителя, а также улучшает производительность, кэшируя содержимое файла nib.

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

... и аналогичная вещь для Class2. Затем, в viewDidLoad

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

затем, при создании ячейки:

NSArray* objects = [myCustomCellNib instantiateWithOwner:nil options:nil]; 
// given that your cell is defined as a first object in your nib 
cell = [objects objectAtIndex:0]; 
Смежные вопросы