我的习惯是<代码>可调用的密码(在接口建设商中重新编号),用于静态<编码>可调用的密码<<>可调用的>代码>。 AddUserTableViewController (即我没有使用自动释放的囚室,因为我只有5个牢房。)
在顶部单元格(用于<强>用户名强>)中,我嵌入了一个<代码> UIButton 代码>,我用它来打开<代码> UIActionSheet 代码>,该操作表再允许<代码> UIImagePicker 代码> 在UIButton上设置图像(即<代码> [button.imageView.image = imageFromImagePicker] code>)。按钮有一个默认图像(在IB中添加),上面写着“添加图像”。
按钮上的图像设置没有问题,并且即使我导航到任何表单单元格的详细信息页面,其中包括用户名单元格,该图像仍保持在原位。当我选择此单元格时,图像消失,并且一旦我从“添加名称”详细视图导航回 AddUserTableViewController ,它不会重新出现。上述的“添加图像”默认图像将被显示。
我已尝试过许多策略,其中包括:
1) 在 viewWillAppear
方法中使用 [self.tableView reloadData]
,[button.imageView setNeedsDisplay]
,[self.view setNeedsDisplay]
。
2) 在cellForRowAtIndexPath code>方法中使用上述方法;
3)在重写的willDisplayCell:forRowAtIndexPath:
方法中使用上述方法;
当我在程序中放置调试NSLog语句时,我可以看到button.imageView.image
属性仍然设置为使用UIImagePicker
选择的图像,但它没有显示出来(从nib中的默认图像显示)。
正如我前面提到的那样,只有我放弃了,才能实现这一点。 AddUserTableViewController , 选择了<>UITableViewCell,其中含有Button
。
我目前不知道该怎么做,如果有人能提供任何帮助,我将非常感激。我只需要找到一种在上述情况下更新嵌入式UIButton图像的方法。
我只是为了说明目的,添加了cellForRowAtIndexPath:
方法中的代码部分 -
//populates the personal info section
if (section == kPersonalInfoAddSection) {
//Covers the add image button and the name adding field
if (row == kNameRow) {
UILabel *nameLabel = (UILabel *)[nameCell viewWithTag:kMainTextTag];
UILabel *reqLabel = (UILabel *) [nameCell viewWithTag:kSubTextTag];
//UIButton *imageButton = (UIButton *) [nameCell viewWithTag:kImageTag];
if (mainUser.imagePath != nil) {
UIImage *img = [UIImage imageWithContentsOfFile:mainUserImagePath];
imageButton.imageView.image = img;
[imageButton.imageView setNeedsDisplay];
//[imageButton setNeedsDisplay];
//[nameCell setNeedsDisplay];
NSLog(@"************************** Added the BESPOKE image (%@)to the image button", img);
}
else {
NSLog(@"************************** Added the DEFAULT image (%@)to the image button", addUserImage);
imageButton.imageView.image = addUserImage;
}
UIColor *blackText = [[UIColor alloc] initWithWhite:0 alpha:1];
NSString *firstName;
if (mainUser.firstName){
nameLabel.textColor = blackText;
firstName = mainUser.firstName;
}
else {
nameLabel.textColor = reqLabel.textColor;
firstName = NAME_STRING;
}
NSString *lastName = (mainUser.lastName)? mainUser.lastName : EMPTY_STRING;
NSString *name = [[NSString alloc] initWithFormat:@"%@ %@", firstName, lastName];
nameLabel.text = name;
reqLabel.text = REQUIRED_STRING;
[blackText release];
return nameCell;
}