我正在尝试创建一个能够在屏幕之间传递数据的结构。但是,当我将数据设置为我的 Struct 属性然后我尝试在另一个屏幕中使用它时,我得到的值为“nil”。我究竟做错了什么?
对象结构:
import UIKit
struct Objetos {
var nome: String
var foto: UIImage
}
这就是我试图设置值的方式:
var objeto = Objeto(nome: "", foto: UIImage())
@IBAction func botaoAdcItem(_ sender: UIButton) {
if (self.namePreview!.text != nil) && (self.imagePreview!.image != nil) {
objeto?.nome = self.namePreview.text!
objeto?.foto = self.imagePreview.image!
self.navigationController?.popViewController(animated: true)
}
else { return }
}
这就是我试图读取数据的方式:
class ViewController: UIViewController, CLLocationManagerDelegate, UITableViewDataSource {
@IBOutlet weak var itensTableView: UITableView!
var arrayNomes = NSMutableArray()
var objeto: Objetos?
var objetos = [Objetos]()
//TableView
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
for nome in objetos {
arrayNomes.add(nome)
}
return arrayNomes.count //Nil value
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = itensTableView.dequeueReusableCell(withIdentifier: "cellId", for: indexPath) as! tableviewCell
cell.nameCell.text = objeto?.nome //Nil value
cell.imageViewCell.image = objeto?.foto //Nil value
return cell
}
override func viewDidAppear(_ animated: Bool) {
self.itensTableView.reloadData()
}
故事板: