2011-10-22 8 views
1

テーブルビューを1つのビューに表示させる方法があるのだろうと思っていましたが、「追加」ボタンを押すと2番目のビューに移動します新しいセルのテキストラベルに表示する名前を入力します。次に、「完了」ボタンを押すと、最新のアイテムを持つ最初のビューに戻ります。しかし、あなたが望む多くの細胞を追加することができます。別のビューからテーブルビューに新しいセルを追加する

+0

Xcodeはこの質問には関係ありません。これは単なるIDEです。言語はObjective-Cと呼ばれ、フレームワークはCocoa-Touchです。 – vikingosegundo

+0

申し訳ありません。その上で動作します –

+0

できるだけ早く、いくつかのチュートリアルを通して自分自身を働かせるようにアドバイスしたいと思います。ここでは小さなコレクションです:http://stackoverflow.com/questions/4190910/book-app-tutorial-iphone/4191037#4191037 – vikingosegundo

答えて

1

ココアとココアタッチは、MVCパターンに基づいています。つまり、モデル、ビュー、コントローラーという責任のある別々のレイヤーがあります。

モデルはデータとそのデータの操作で、ビューは表示され、コントローラーはそれらを仲介します。

したがって、あなたの例では、別のビューからセルを追加しません。それは基本的なパターンに違反します。代わりに、データを追加することでモデルに呼び出され、アイテムとビューを追加するビューがなくなるビューが発生します。次に、アイテムをリストするビューに戻ると、モデル(新しいオブジェクトを含む)にクエリが実行され、リストにオブジェクトが含まれます。

2つのビューは切り離され、同じモデルを共有します。デカップリングされているため、ほとんどのアプリを破壊することなくインターフェースとストレージを変更できます。

たとえば、モデルクラスのクエリからそのリストを取得するテーブルビューコントローラを使用できます。

方法は、単純なファイル、あるいはメモリに、Sqliteを(FMDBの検索)、CoreDataストレージによってバックアップすることができ
NSArray* items = [model getItems]; 

:あなたのモデルクラスのようなメソッドを提供していますシングルトン([mymodelというsharedInstance])可能性がありNSMutableArrayのようなデータ。あなたのUITableViewControllerはあなたのモデルを呼び出してコールバックメソッドを実装します。

次に、AddItemControllerをモーダルに表示するためにこのボタンを呼び出します。

[self presentModalViewController:addItemController]; 

ユーザーがフォームにデータを供給し、完了/保存]ボタンをクリックした後、あなたがデータを持つクラスでアイテムを保存するためにあなたのモデルを呼び出す:

[[MyModel sharedInstance] saveItem:item]; 

に書き込みあなたのストレージ。

次に、UITableViewControllerに戻ると、viewWillAppearでデータを照会し、reloadDataにテーブルビューを呼び出すことになります。

_items = [[MyModel sharedInstance] getItems]; 
[[self tableView] reloadData]; 

今の表では、追加したばかりのデータを示しています。

他のバリエーションもありますが、それはMVC分離の基本的なものです。

+0

その答えをありがとう。あなたはデータを保存する最良の方法は何だと思いますか?複数の行を追加しているのでメモリをあまり使わないので、まとめるのに時間がかかりません。私は.plistを使うことを考えていましたが、 "追加したいすべての行に新しい.plistを使用する必要があります"と思ったのですか?それは私の最初の保存方法でしたが、もしあなたが私により良い方法を与えたり、.plistの使い方を助けてくれればそれは素晴らしいでしょう!ありがとう –

+0

plistはアイテムのリストをstroringするのに適しています。キーとなる質問にはクエリパターンがあります。もし私にアイテムと他の基本的なフィルタのリストを与えるならplistはうまくいきます。より複雑なアクセスパターン、クエリ、検索に遭遇した場合、SQLエンジンのようなものの力が必要になります。シンプルだが... – bryanmac

+0

もっと強力なデータ機能が必要になるのをいつか見ているなら、Core DataとSqliteはiOSの明白な選択肢です。 – bryanmac

0

私はちょうどいい言葉でこれを入れて、追加したいと思います... あなたのテーブルに(配列、辞書、クラス、あなたの名前を...) 「追加」ボタンを作成し、新しいビューコントローラを押して、ナビゲーションバーの「完了」ボタンを押すと、オブジェクトのプロパティ(名前テキストフィールド情報、または必要なもの)を読み込み元に追加しますからのあなたのテーブルビューデータ。

関連する問題