もぶわさおの「ダメ人間さんいらっしゃい」ブログ

技術系ブログにしたかったのにそうもいかなくなったけど、閉鎖するのもアレだからなんか書くブログです

segueによる画面間データの受け渡し(失敗例)

親画面に表示する内容を子画面で選択。その後、親画面でそれを表示したい

子画面にはTableViewがあり、テーブルを選択した際にUnwindActionが走る

失敗例:

子画面側ソース

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        
        let viewConroller = segue.destination as! SearchViewController
        
        switch segueName {
        case "selectDestination":
            viewConroller.destinationButton.titleLabel?.text = selectedItem
        case "selectDeparture":
            viewConroller.departureButton.titleLabel?.text = selectedItem
        default: break
        }
    }


のように、親画面をいじってやるつもりだったが、なぜか空文字になっていた

それは、TableViewの選択時イベント

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        selectedItem = list[indexPath.row]
    }

が後に走るため、登録する文字が空文字になっていた為

なんでやねん