2017-06-28 8 views
0

私は2つのビューコントローラAとBとAからB(タイプ:show)から次のボタンからBとA(タイプ:ボタン。私はいくつかのデータをセグAからBに渡しています。コントローラーAから次のタップをしてコントローラーBに移動すると、データが正しく表示されます。segueを通過したデータは、戻るボタンを押した後に失われます

しかし、次はタップしてコントローラーBに戻り、 Aに移動してからもう一度押すと、動作しません。どんなアイデアがここで起こっていますか?混乱している言語にはごめんなさい。

+0

あなたのデータはコントローラAのプロパティに保存され、 'prepareForSegue'を通してBに渡されますか? –

答えて

0

あなたの「B to A」のような音は間違っています。ナビゲーションスタックを使用しているので、前方に移動しているときに押す(表示する)必要があります。後ろに行くと、上から飛び出す必要があります(却下)

押し続けると、ViewControllerをメモリに入れていくだけです。悪いです。

ここで起こっていることは、ビューAが最初にデータを持ってそれをビューBに渡していると思われます。そして、戻るボタンを押すと、データを持たないビューAの新しいコピーが作成され、要するに、元のビューA.

:(BにA:タイプ - ショー)(へB:現在のViewControllerを解任)

0

私はあなたが行くように定期的にセグエを使用してはならないという点で、user2877496に同意しますあなたは毎回スタックに「A」を追加するので、BからAに戻ります。 私はBを解除し、Aに戻るにはUnwind Segueを使用する方法を追加したがっています。 アップルのドキュメントでこれを詳しく説明しています。 https://developer.apple.com/library/content/technotes/tn2298/_index.html

0

解決しましたか?私の推測では、viewDidLoad(あなたのアプリの開始時に一度だけ実行する)で実行するものを入れて、viewWillAppearに入る必要があるので、メインのView Controllerに戻るたびに呼び出されます。さらなる助けが必要な場合は、これらの方法のコードを記入してください。

+0

私はセグを使いました。単純にUser Defaultsを使ってデータを保存しました。 –

+0

優秀!あなたの問題を解決するためのおめでとう。それを答えとして書いてそれを受け入れるべきです。 – Mozahler

関連する問題