Выполнить переход с выбранной строкой в ​​табличном представлении - PullRequest
0 голосов
/ 14 марта 2019

Я хочу, чтобы, когда пользователь выбирал строку, переход изменил метку другого представления.

Мне удалось получить выбранную строку, но я не смог отнести значение 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, и поэтому мой лейбл равен нулю.

Спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...