0

少しパニックに陥っており、これについて本当に助けが必要です!

フォームに入力するアプリを作成しています。フォームのレイアウトは Web サーバー上で作成され、iPad アプリはそれと同期し、フォーム データベースをコピーして、ローカルで実行します。

テキスト フィールドの 1 つのタイプは UITextView で、ユーザーはフィールドに直接書き込むか、事前に定義された多くのテキスト (これも Web サーバーで定義されています) のいずれかを使用してテキストを入力できます。

定義済みのテキストを使用するには、ユーザーが UITextView を含むテーブルセルをタッチまたは選択すると、カテゴリ ピッカー ビューが画面にプッシュされます。カテゴリを選択すると、ユーザーはテキストのリストを取得し、テキストを選択すると、挿入する前に編集するための単純な uitextview を取得します。保存ボタンを使用すると、ユーザーは選択したテキストが追加された元のビューに戻ります。

フローチャート:

 root view with input fields-> category picker -> text picker -> editor 
  /\                                                               |
   '------------------------------save text------------------------'

問題は、他のビューが読み込まれると、他のすべての入力フィールドが空になることです! 選択されたフィールドの値は、prepareForSegue を介して渡されるため、保持されます。

すべてのフィールドをデータベースに保存する保存機能があります。prepareforsegue呼び出し内に呼び出しを入れようとしましたが、クラッシュするか、何もしません。

質問:保存機能はどこに置くことができますか? 別の方法でできますか/すべきですか?保存機能を実行する代わりに、すべてのタグの値を appDelegate 内の辞書に入れることを考えましたが、入力フィールドが編集されるたびにそれを更新するにはどうすればよいですか?

また、カテゴリピッカーなどをプッシュセグエの代わりにある種のポップオーバー/モーダル/ポップアップビューに配置すると、値がクリアされなくなりますか? 私はそのような見解からの経験がありません.誰かが良い出発点を与えることができますか? (おそらく、重いAppleドキュメントではなく、優れたチュートリアルです:)

明日には締め切りがありますが、完了しなければならないことがたくさんあるので、どんな助けにもとても感謝しています!!

ありがとうございました!! /デイブ

4

1 に答える 1

2

あなたの問題は、モデルが存在しないことが原因だと思います(モデルビューコントローラーパターンに関して)。フォーム データを表すモデル (カスタム オブジェクト、NSArray、NSDictionary など) は、ビューを更新する必要があり、入力フィールドの値ではなく、prepareForSegue で渡す必要があります。

具体的には、最新のデータを維持する新しいプロパティを作成します。ユーザーが編集を行ったり、一部のフィールドのカテゴリを選択したりすると、モデルが更新されます。次に、フォーム ビュー コントローラーに戻ったら、viewDidAppear を使用して入力フィールドを最新の値に更新します。

于 2012-12-21T08:14:49.747 に答える