2016-09-09 7 views

答えて

3

のiOSアプリは、MVCデザインパターンに従ってください。それはModel View Controllerの略です。

モデルは、データを保存する場所です。ビューは、データを表示する場所です。コントローラは、制御ロジックを配置する場所です。一般的に、モデルから情報を取り出し、ビュー・オブジェクトに表示し、ビュー・オブジェクトから情報を収集してモデルに戻します。

それぞれのテキストフィールドは、ビューオブジェクトです。情報を表示し、ユーザーから情報を収集します。そこにデータを格納すべきではありません。

UITextFieldの代理人として自分自身を設定し、ユーザーがテキストを入力したことを示す1つ以上のメソッドを実装する必要があります。

たとえば、ユーザーが編集を終了すると、textFieldDidEndEditingが呼び出されます。

ユーザーがテキストフィールドにデータを入力し終えたら、テキストフィールドのtextプロパティを照会し、そのデータをView Controllerのモデルにコピーする必要があります。これは、ユーザー・データを保持するビュー・コントローラー内のインスタンス変数のグループと同じくらい簡単です。

次に、ユーザーがページを離れるとモデルデータを配置する場所が必要です。どのようにするかは、アプリで何をしているかによって異なります。

最後に、ユーザーがこのページを再度表示すると、保存したデータをフェッチして、さまざまなビューオブジェクトに再表示する必要があります。

詳細を提供しない限り、私は実際にはもっと具体的な助けをすることはできません。

0

問題は、永続ストレージがないことです。 iOSでは、何かがデバイスに保存されていないと、View Controllerを離れると簡単に失われる可能性があります。より正確には、変数は、変数を保持しているオブジェクトの割り当てが解除されたとき、または値が明示的に変更されたときに値を失います(他の回答を参照)。

たとえば、特定のセグの種類によって、VCの新しいインスタンスが作成され、データが失われる可能性があります。値を永続的に保存すると、これらの問題を回避することができます。 :NSUserDefaults(かなり小さい情報のための簡単な永続ストレージを使用して無線LANが必要とされるが

1)オンラインデータベースを使用して()

2):永続ストレージの面では

、いくつかのオプションがあります避ける画像)

3)コアデータ(オンデバイスの永続的なストレージ:)より複雑なく、はるかに強力

NSUserDefaultsで始めることをおすすめします。なぜなら、これは簡単に学習できるからです。ここで

あなたはNSUserDefaultsに書き込むことができる方法です。

let defaults = NSUserDefaults.standardUserDefaults() 
defaults.setObject(myArray, forKey: "arrayKey") 

そして、これはあなたがデータを取得する方法です。

var retrievedArray = defaults.objectForKey("arrayKey") as [String] 

私はそれが文字列の配列であると仮定しています。 配列にデータを追加するときは、NSUserDefaultsにデータを格納してから、データを取得する必要があるときはそこから取り出します。

また、これにより、他のViewControllerのこの情報にアクセスできるようになります。また、アプリが終了した後もアクセスできます。言い換えれば、データはそこに残っています。もちろん、上書きすることはもちろん、アプリを削除して削除することもできます。

はこれを見てください: ここ https://www.hackingwithswift.com/read/12/2/reading-and-writing-basics-nsuserdefaults

あるユーザーが「保存」ボタンを押すときに実行する必要がありますコード:

var myText = myTextField.text (or whatever you called it) 
NSUserDefaults.standardUserDefaults().setObject(myText, forKey: "myKey") 

ご質問は?幸せに助けてください:)

+0

私はちょうどボタンをデータを保存するように指示することができたと思った。なぜ私はそれをしないのですか? – sve

+0

できます!ボタンがクリックされたら、NSUserDefaultsにデータを保存するコードを少し実行してください:) – GJZ

+0

正確なコードを入力してください。私はオンラインで検索しているし、働いている行のいくつかを発見していない。 – sve

関連する問題