如何使用swift在另一个视图控制器中使用分段控件更改UITableViewCell
中的IBOutlet图像集?
UITableViewCell.swift :
class UserCell: UITableViewCell {
@IBOutlet var imageDisplayIcon: UIImageView!
的ViewController:
@IBAction func btnClicked(sender: AnyObject) {
if txtSex.selectedSegmentIndex == 0{
var imagePicView: UserCell = UserCell()
imagePicView.imageDisplayIcon.image = UIImage(named: "BoyIcon.png")
//imageDisplay.image = UIImage(named: "BoyIcon.png")
print("male")
}
if txtSex.selectedSegmentIndex == 1{
var imagePicView: UserCell = UserCell()
imagePicView.imageDisplayIcon.image = UIImage(named: "GirlIcon1.png")
//imageDisplay.image = UIImage(named: "GirlIcon1.png")
print("female")
}
我收到错误说
"fatal error: unexpectedly found nil while unwrapping an Optional value."
我该怎么办?
答案 0 :(得分:1)
我想你有UITableView
<强> 1。在操作中重新加载表格数据
@IBAction func btnClicked(sender: AnyObject) {
tableView.reloadData()
}
<强> 2。在表数据源委托中添加图像单元
func tableView(_ tableView: UITableView,
cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let imageName = txtSex.selectedSegmentIndex == 0 ? "BoyIcon.png" : "GirlIcon1.png"
// Load your cell
cell.imageDisplayIcon.image = UIImage(named: imageName)
return cell
}
答案 1 :(得分:0)
您应该在设置单元格的图片视图后重新加载tableview
段的点击操作,以使其受到桌面视图的影响!!
您需要相应地管理cellforrow
。在您的cellforrow
数据源方法中,应该有条件,如果选定的段是男性,那么图像应该是男性,反之亦然!
答案 2 :(得分:0)
您应该在UserCell和ViewController之间使用'delegate'。那是最好的方式。