我正在尝试创建一个UITableViewController,它的UITableViewCell是一个xib文件。 Xib文件为空(0个控件)所有控件都是以编程方式创建的,如此
- (id) initWithTitle: (NSString*)p_title andImage: (UIImage*)p_image
{
//adding checkbox & title
MMCheckbox* myCheckbox = [[MMCheckbox alloc] initWithTitle:p_title andHeight:20];
myCheckbox.frame = CGRectMake(self.frame.size.width - myCheckbox.frame.size.width -15,20, myCheckbox.frame.size.width, 20);
myCheckbox.flat = YES;
myCheckbox.strokeColor = [UIColor whiteColor];
myCheckbox.checkColor = [UIColor magentaColor];
myCheckbox.uncheckedColor = [UIColor clearColor];
myCheckbox.tintColor = [UIColor clearColor];
[self addSubview:myCheckbox];
//adding the image
UIImageView* imageView = [[UIImageView alloc] initWithFrame:CGRectMake (15, 10, 20, 20)];
[imageView setImage: p_image];
return self;
}
在xib文件中我放置了一个UITableViewCell并将它的类设置为我的类MMCheckboxTableViewCell
在我的tableViewController中,我正在创建从NIB加载它的单元格,如此
- (UITableViewCell *)tableView:(UITableView *)p_tableView cellForRowAtIndexPath:(NSIndexPath *)p_indexPath
{
//create a UI tableViewCell
UITableViewCell* cell = [p_tableView
dequeueReusableCellWithIdentifier:@"comboBoxCell"];
if(cell == nil)
{
UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:@"MMComboBoxTableCell" bundle:nil];
// Grab a pointer to the custom cell.
cell = (MMComboBoxTableCell *)temporaryController.view;
}
}
我看过很多相同问题的帖子,并根据this检查我是否已经完成了所有事情。
请让我知道我错过了什么。
答案 0 :(得分:1)
我的问题在于我加载XIB的方式。
通过更改以下内容:
UIViewController *temporaryController = [[UIViewController alloc] initWithNibName:@"MMComboBoxTableCell" bundle:nil];
到此:
MMComboBoxTableCell* temporaryController = [[[NSBundle mainBundle] loadNibNamed:@"MMComboBoxTableCell" owner:self options:nil] objectAtIndex:0];
问题解决了。