ビューコントローラに渡されるテキストがあり、セルラベルテキストをこれに設定しようとしています。私はこのコードを実行するとデリゲート機能を介して渡されたテキストにセルテキストラベルを設定
class oneViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate, TypingDelegate {
@IBOutlet var tableView: UITableView!
var someText:String = ""
...
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
print("TextA: \(someText)")
let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell")
cell.textLabel.text = someText
return cell
}
...
func data(passedData:String) {
someText = passedData
print("TextB: \(someText)")
}
...
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showSecondVC" {
let sendingVC:OtherViewController = segue.destination as! OtherViewController
sendingVC.myDelegate = self
}
}
}
私が取得:
TextB: "pizza"
TextA: ""
「ピザ」の渡された値が「」ビューがロードされるたびに上書きされるように思えます。渡されたデータをデリゲート関数から取得し、セルテキストラベルをその値に設定するにはどうすればよいですか?予期しない動作がデリゲート機能によって引き起こされる可能性が
に従って読み込むことができる順序付けされた値を格納する 'data(passedData:)'関数を呼び出すコードを追加してください。 – dan
他のコード.. – JordanW
"showOtherVC"セグをアンワインドセグ?おそらく 'TypingViewController'の上に' oneViewController'の別のコピーをプッシュ/プッシュするのではなく、 'TypingViewController'をポップ/ディスマウントして現在の' oneViewController'を表示します。 – dan