2017-01-04 6 views
-2

私はiOS開発を初めて利用しています。私は奇妙な状況を抱えています。毎回ではなく非常に頻繁に起こっています。戻るボタンを使用して同じ画面に戻ると、私のテキストフィールドが自動的にクリアされています。コード:私のテキストフィールドが自動的に消去されています

self.navigationController?.popViewControllerAnimated(true) 

問題はシミュレータとデバイスの両方で発生します。

+1

追加してください、あなたがしようとしているコードスニペットは...? – iDeveloper

+0

この種の質問を投稿して申し訳ありませんが、問題はviewwillappear()が呼び出されて、すべてのテキストフィールドをクリアしているときです。とにかくあなたの答えと時間をありがとう。 –

答えて

1

これは、あなたが前のviewControllerにアプリをナビゲートするたびにコンテンツビューが更新されるために発生します。これにより、すべてのUIコンポーネントにも最新の情報が反映されます。ここで行う必要があるのは、userDefaultsを使用してtextfields値を一時的に任意の永続ストレージに保存してから、userDefaultsメソッドを使用して再度値を割り当てます。このメソッドは、アプリケーションをvcに戻すときに毎回実行されるためです。

viewWillAppear():ビューコントローラのコンテンツビューがアプリケーションのビュー階層に追加される直前に呼び出されます。このメソッドを使用して、コンテンツビューが画面に表示される前に発生する必要のある操作をトリガーします。名前にかかわらず、システムがこのメソッドを呼び出すというだけで、コンテンツビューが確実に表示されるとは限りません。ビューは他のビューによって隠されるか、隠される可能性があります。このメソッドは、単にコンテンツビューがアプリケーションのビュー階層に追加されることを示します。

+0

userdefaultsを使用すると、アプリに負担はかかりません。テキストフィールドは毎回クリアされず、ランダムに発生します。これを行うための他の方法はありますか? –

+0

あなたはより多くの意見のためのコードを示すことができます。 – vaibhav

+1

私はあなたが言及した方法を知っているが、私は50のビューコントローラがあります。すべての50個のView Controllerでuserdefaultsを作成すると意味がありません。実際に私は何かを行う一般的な方法を探しており、アプリ全体に反映する必要があります。 –

関連する問題