rootViewControllerのtableViewデータをリロードする

私はそれを実装する配列に新しいオブジェクトを作成した後に、私のtableViewをrootViewControllerで取得しようとしています。

私はrootVIewControllerの私のviewDidLoadで次を使用したい:

[tableView reloadDate];

私はエラーが表示されます:

宣言されていない識別子 "tableView"の使用

私はviewDidLoadメソッドの後までオブジェクトtableViewを宣言していないためだと思います。だから、テーブルをリフレッシュするために他にどのようなオプションが必要ですか?

ありがとう

0
この場合の tableView はivarです。 tableView というプロパティがあるとします。 [self.tableView reloadData];
追加された 著者 beryllium,

1 答え

tableViewを宣言していない場合は、リロードするように指示することはできません。アプリケーションのアーキテクチャを取り巻く問題があります。「rootViewCOntroller」と言えば、アプリケーションRVCを指しているのでしょうか?もしそうなら、テーブルビューをプログラムでインスタンス化するのか、.xib/outletからアクセスするのですか?

XIBにアクセスしている場合は、プロパティアウトレット[[self tableView] reloadData]を呼び出す必要があります。

テーブルビューをプログラムで作成する場合は、テーブルビューを作成する前にリロードを呼び出す必要があります。ほとんどの場合、そのtableViewを指すRVCクラスのプロパティを定義する必要があります。自分のコードで行ったように直接アクセスするのではなく、[[self tableView] reloadData]を呼び出すことができます。

0
追加された
奇妙な言葉を残念に思って、(obj-cの初心者)、それは私が参照しているアプリRVCです。私はプログラムでtableViewをインスタンス化しています。
追加された 著者 novicePrgrmr,
私は私の問題は、オブジェクトが別のクラスの配列に追加されているので、別のクラスのクラスからreloadDataを取得する方法がわからないと思います
追加された 著者 novicePrgrmr,
あなたが必要とするよりも後でテーブルビューをインスタンス化しているようです。単純にコード内にテーブルを作成していないという動機づけはありますか?私はまた、配列に新しいオブジェクトを追加する方法は、RVCs viewDidLoadに負担をかける方法についてはっきりしていません...画面上にテーブルがあると仮定すると、新しいモデルオブジェクトが配列に追加された場合は、 (または、[tableView insertRowsAtIndexPaths]を使用して)...もう一度あなたのアーキテクチャを見ることはできませんが、配列に何かが追加された時点で、viewDidLoadは長くなくなっています...
追加された 著者 isaac,
これにアプローチするにはいくつかの方法がありますが、委任を試みるかもしれません。あなたのtableViewを管理しているどのクラスであれ、単純なプロトコルを定義し、 'modelObjectInserted:'のようなメソッドを与えます。定義したプロトコルにオブジェクトを挿入する可能性があるクラスを指定します。適合するクラスがオブジェクトを挿入するときはいつでも、この委譲メソッドを呼び出す必要があります。メソッドがあなたのテーブルビューコントローラで呼び出されると、適切なアクション、たとえばreloadまたはinsertCellForRowAtIndexPathを呼び出すことができます。
追加された 著者 isaac,