我有两个继承UITableViewControllers的类。这两个表视图应该使用相同的自定义UITableViewCell。那么如何在两个不同的类中使用Nib文件中的Custom UITableViewCell呢? xib的所有者只能是一个类。
@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;
答案 0 :(得分:3)
创建一个UITableViewController
子类,说CommonTableView
。将其设为nib文件的所有者。然后从CommonTableView
类继承要实现的两个类。这样可以正常工作。
答案 1 :(得分:0)
根据我的观点,您应该创建自定义单元格,而对于其他表格,您应该只为其创建XIB并使用.h和.m文件相同...
只需在XIB中更改控制器......
希望你明白......
答案 2 :(得分: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];