我正在开发一个Tableview Controller,里面是从storyboard文件中加载的。
出于可重用性的目的,我希望故事板中的一个单元格从nib文件加载。
我该怎么做?
我当前的实现仅使用viewDidLoad而不使用其他tableview委托方法
- (void) viewDidLoad
{
[super viewDidLoad];
self.title = self.requestTypeDescription;
self.itemDescriptionLabel.text = self.currentItem.articleDescription;
self.modelNumberLabel.text = self.currentItem.partNumber;
notesHistoryString = @"Valerie is a young woman who lives...";
self.partNumberCell.count.text = [NSString stringWithFormat:@"%@", self.currentItem.sapCount];
self.serialNumbersCell.count.text = [NSString stringWithFormat:@"%lu", (unsigned long)self.currentItem.serialNumbers.count];
}
答案 0 :(得分:0)
使用registerNib注册nib:forCellReuseIdentifier :(在viewDidLoad中是一个好地方),并在您的cellForRowAtIndexPath中,当您需要该类型的单元格时,使用您传入该方法的相同标识符对单元格进行出列。
答案 1 :(得分:0)
我最终在故事板中为Tableview控制器(TVC)内的tableview创建了一个空白单元格。然后我为UIView创建了一个nib文件。
My View,正在加载nib有initWithFrame(用于加载xib),它的实现如下所示:
@implementation SimpleView
-(id)initWithFrame:(CGRect)frame
{
NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"SimpleView"
owner:nil
options:nil];
if ([arrayOfViews count] < 1){
return nil;
}
SimpleView *newView = [arrayOfViews objectAtIndex:0];
[newView setFrame:frame];
self = newView;
return self;
}
然后在TVC内的viewDidLoad上,我将其添加到空白单元格中,如下所示:
@implementation ExistingRequestsItemDetailActionVC
#pragma mark - Life cycle
- (void) viewDidLoad
{
[super viewDidLoad];
self.title = self.requestTypeDescription;
self.itemDescriptionLabel.text = self.currentItem.articleDescription;
self.modelNumberLabel.text = self.currentItem.partNumber;
notesHistoryString = @"Valerie is a young woman who lives...";
self.partNumberCell.count.text = [NSString stringWithFormat:@"%@", self.currentItem.sapCount];
self.serialNumbersCell.count.text = [NSString stringWithFormat:@"%lu", (unsigned long)self.currentItem.serialNumbers.count];
// Here is where I am loading the other cellview from xib
SimpleView *myView = [[SimpleView alloc] initWithFrame:self.myCell.bounds];
myView.slider.value=1;
[self.myCell addSubview:myView];
}