我有两个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崩溃了
如果有人帮助我,你可能会感谢:)
答案 0 :(得分:0)
当您发布崩溃时,说出异常是什么以及崩溃的哪一行通常很有用。
您的currentFile
是nil
,它从未初始化,并且您正在强制解包它(使用!
),这就是您的应用崩溃的原因。您的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)
}