UITableViewCell中的图像更改使用另一个视图中的分段控件

时间:2016-08-29 09:37:11

标签: ios uitableview uisegmentedcontrol

如何使用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."

我该怎么办?

3 个答案:

答案 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'。那是最好的方式。