0

MonoTouch を使用して iOS 用のニュース アプリケーションを作成しています。データは OData Web サービス経由で取得されます。

OData フィードのクエリを担当する NewsFactory というシングルトン クラスがあります。ViewDidLoad メソッドで、ニュース記事のリストを取得し、テーブル ビューにバインドしています。

ただし、アプリを起動するたびにこれを更新する方法がわかりません。「引っ張ってリフレッシュ」はあまり気にしません。私が確認したいのは、アプリが起動されるたびに (最初から、または再度アクティブ化されて)、Web サービスへの呼び出しが行われ、最新の情報が表示されるようにすることだけです。

さらに、アプリの起動時にネットワーク接続が失われ、ユーザーに通知するシナリオについても説明します。使用によりアプリが閉じられ (サスペンド)、ネットワーク接続が回復したとしましょう。ユーザーがアプリを再度開いた場合、最新のニュース記事が表示されるようにしたいと思います。

プログラムでビュー階層を構築しています。ナビゲーション コントローラーと 5 つのタブを持つタブ バー コントローラーがあります。iOS 5 をターゲットにしています。

OnActivated と ViewWillAppear で遊んでみましたが、必要なことを正確に実行しません。これはどの iOS アプリでも非常に一般的なニーズであるため、解決策が必要です。

4

1 に答える 1

0

一般に、1 つのソース (データを含むテキスト ファイルとしましょう) からロードするメソッドを呼び出す場合は、ソースを変更します (テキスト データを変更します)。クラスがロードされると、新しいクラスがロードされたときに新しいデータが表示されます。

たとえば、次のようにします。

- (void) loadView {
    NSString *testString = [NSString stringWithContentsOfFile:filePath];
    textView.text = testString;
}

この例は、ファイル内のテキストを UITextView インスタンスに設定する方法を示しています。初めてロードしたときにファイルに「こんにちは」の内容が含まれていた場合、textView は「こんにちは」と表示されます。変更してから同じメソッドを呼び出すと、アプリを 2 回目に読み込んだときに、変更されたテキストが表示されます。

ポイントは、データを変更してから同じメソッドを呼び出すと、違いがわかるということです。データベースを扱っている場合を除きます。

サンプルコードを提供していただければ、より良い例を提供できます。

編集:カスタムクラスにこの関数が付属しているかどうかはわかりませんが、通常の UITableView クラスに含まれています:

[tableView reloadData];

配列が内部的に変更された後に呼び出すことができます。

于 2012-08-02T02:11:40.867 に答える