Я очень новичок в Swift, и если у вас есть рекомендации по его улучшению, я был бы признателен.
У меня есть два ViewController, они выглядят абсолютно одинаково, за исключением данных. По какой-то причине мой второй ViewController не работает. Кажется, мой tableView имеет нулевое значение, и я вижу:
Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
. То, как я называю свой ViewController, выглядит следующим образом (MenuViewController (), animated: true)
import Foundation import UIKit import Firebase
class MenuViewController: UIViewController {
@IBOutlet var tableView: UITableView!
let db = Firestore.firestore()
var names = [String]()
override func viewDidLoad() {
super.viewDidLoad()
db.collection("Menus").getDocuments() { (querySnapshot, err) in
if let err = err {
print ("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
self.names.append(document.documentID)
print("\(document.documentID) => \(document.data())")
}
}
self.tableView.reloadData()
}
tableView.delegate = self
tableView.dataSource = self
}
}
extension MenuViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("tap tab revolution")
}
}
extension MenuViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.names.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "menuCell", for: indexPath)
cell.textLabel?.text = names[indexPath.row]
return cell
}
}