Я хочу, чтобы, когда пользователь выбирал строку, переход изменил метку другого представления.
Мне удалось получить выбранную строку, но я не смог отнести значение postText?
Это файл SelectionMarque swift:
class SelectionMarqueViewController: UITableViewController {
var posts = [Post]()
var indexMarques = 0
var marqueSelected: String = ""
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
loadMarques()
}
func loadMarques() {
var ref : DatabaseReference?
ref = Database.database(url: "https://myURL.com/").reference()
//ref?.observe(.childAdded, with: { (snapshot) in
ref!.queryOrdered(byChild: "Marque").observe(.childAdded, with: { (snapshot) -> Void in
if let dict = snapshot.value as? [String: Any] {
let marqueText = dict["Marque"] as! String
let post = Post(marqueText: marqueText)
self.posts.append(post)
print(marqueText)
self.tableView.reloadData()
}
})
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell", for: indexPath)
cell.textLabel?.text = self.posts[indexPath.row].marque
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
marqueSelected = posts[indexPath.row].marque
print("Marque selectionnée \(marqueSelected)")
self.performSegue(withIdentifier: "goToChoiceGeneral", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
var marqueToSent = segue.destination as! ChoiceGeneralTableViewController
marqueToSent.postText = marqueSelected
print("Marque sent \(marqueSelected)")
}
}
Здесь другое представление:
class ChoiceGeneralTableViewController: UITableViewController {
@IBOutlet weak var marquePressed: UILabel!
@IBOutlet weak var labelMarque: UILabel!
public var postText: String? = ""
override func viewDidLoad() {
super.viewDidLoad()
labelMarque.text = postText
}
}
Я пробовал много вещей, но на самом деле консоль возвращает:
Marque sent
Marque selectionnée Honda
Marque sent Honda
Я думаю, что проблема может быть в том, что Marque sent
появляется в первый раз, когда ноль ивторой со значением.Я думаю, что segue имеет нулевое значение вместо Honda, и поэтому мой лейбл равен нулю.
Спасибо за вашу помощь