Я настраиваю проект, в котором я хотел бы получить данные из базы данных Firebase и появиться в TableView.
что касается строк, которые я смог найти, но сформировать образ у меня было действительно трудное время, в основном из-за недостатка знаний с моей стороны. Изображение из Firebase извлекается из URL-адреса этапа Firebase.
Это проект Firebase, NoSql и Swift.
Файл 1:
fileprivate var items: [ItemInfo]! = [("Titulo","Description","email","Linkdetalhes","telefone","Coordenates","Rating","photo")]
override func viewDidLoad() {
super.viewDidLoad()
switch clickedButton {
case 1:
items.removeAll()
(UIApplication.shared.delegate as! AppDelegate).fireBaseRef.observe(.value, with: { snapshot in
let dictRoot = snapshot.value as? [String : AnyObject] ?? [:]
let dictAliances = dictRoot["Aliances"] as? [String: AnyObject] ?? [:]
print(dictAliances.count)
//new strategy for image
for key in Array(dictAliances.keys) {
let alianceDic = dictAliances[key]
self.items.append(( alianceDic!["Title"] as! String, alianceDic!["Description"] as! String, alianceDic!["email"] as! String, alianceDic!["Linkdetalhes"] as! String, alianceDic!["telefone"] as! String, alianceDic!["Coordenates"] as! String, alianceDic!["Rating"] as! String, alianceDic!["photo"] as! String))
self.tableView.reloadData()
print("**** \(self.items)")
}
print(dictAliances)
})
self.tableView?.reloadData()
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "hello", for: indexPath) as! itemTableViewCell
let item = self.items[indexPath.row]
cell.Title.text = item.Title
cell.Description.text = item.Description
cell.Rating.text = item.email
cell.photo.text = item.photo
return cell
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "exemplo"){
let vc = segue.destination as! DetalhesViewController
vc.titulodetalheProduto = self.escolhido.Title
vc.descriptiondetalheProduto = self.escolhido.Description
vc.emaildetalheProduto = self.escolhido.email
vc.linkdetalhesProducto = self.escolhido.Linkdetalhes
vc.telefonedetalheProduto = self.escolhido.telefone
vc.locationdetalheProduto = self.escolhido.Coordenates
vc.ratingdetalheProduto = self.escolhido.Rating
vc.photodetalheProduto = self.escolhido.photo
}
Файл 2:
@IBOutlet weak var photodetalhe: UIImageView!
@IBOutlet weak var titulodetalhe: UILabel!
@IBOutlet weak var ratingdetalhe: UILabel!
@IBOutlet weak var telefonedetalhe: UILabel!
@IBOutlet weak var emaildetalhe: UILabel!
@IBOutlet weak var locationdetalhe: UILabel!
@IBOutlet weak var descriptiondetalhe: UITextView!
@IBOutlet weak var linkdetalhes: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
linkdetalhes.text = linkdetalhesProducto
titulodetalhe.text = titulodetalheProduto
ratingdetalhe.text = ratingdetalheProduto
telefonedetalhe.text = telefonedetalheProduto
emaildetalhe.text = emaildetalheProduto
locationdetalhe.text = locationdetalheProduto
descriptiondetalhe.text = descriptiondetalheProduto
photodetalhe.image = photodetalheProduto
// Do any additional setup after loading the view.
}
Ожидаемый результат - сбор данных из фотографии в базе данных и заполнение UIIamge в проекте Swift.