如何在swift中使用从数组结构中的多个pic到单独的单元格?

时间:2015-08-02 07:59:58

标签: ios swift

我有两个UITableViewController和一个UIViewController。 在第一个UITableViewController我有2行,如果我选择第1行,那么它必须转到UIViewController。否则,如果我选择第2行,则必须转到UITableViewController 2

我可以通过这段代码和故事板中的segue来做到这一点:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
    if indexPath.row == 0 {
        self.performSegueWithIdentifier("ViewController 1", sender: self)
    } else if indexPath.row == 1 {
        self.performSegueWithIdentifier("TableViewController 2", sender: self)
    }
}

现在这个正常运行并没有问题! 我的问题出在我UIViewController的{​​{1}},我无法在此UIImage中添加来自数组结构的图片 我的结构和数组是:

UIImage

我的struct Files { var name : String var filename : String var notes : String } var file = [Files]() let newfile = Files(name:"" , filename:"" , notes: "") file.append(newfile) 代码是:

UIViewController

我不知道我的问题是当我在第1行选择时我的iphone崩溃了

如果有人帮助我,你可能会感谢:)

1 个答案:

答案 0 :(得分:0)

当您发布崩溃时,说出异常是什么以及崩溃的哪一行通常很有用。

您的currentFilenil,它从未初始化,并且您正在强制解包它(使用!),这就是您的应用崩溃的原因。您的viewDidLoad应该类似于:

override func viewDidLoad() {
    super.viewDidLoad()

    currentfile = Files(name:"somename" , filename:"somefilename" , notes: "")
    currentimage.image = UIImage(named: currentfile!.filename)
}

如果您不确定可选的nil,则不应使用强制解包。这可以防止你的崩溃:

if let unwrappedCurrentFile = currentFile {
    currentimage.image = UIImage(named: unwrappedCurrentFile.filename)
}