0

この問題のスレッドが見つからなかったので、ここで質問します。

誰かが私を助けてくれたら本当に嬉しいです。

ナビゲーション コントローラーがあり、TableViewController をそれにプッシュしています。私の問題は、[戻る] ボタンをクリックすると、以前の tableViewcontroller が以前のデータと共に表示されますが、dataArray プロパティ (テーブルのデータソース) が空であることです。

私のコード:

  @interface patientViewControllerSearch : UIViewController <UITableViewDelegate, UITableViewDataSource, ASIHTTPRequestDelegate>
{
    NSMutableArray *dataArray;
    NSMutableArray *letters;

    UITableView *tableView;
    IBOutlet UISearchBar *searchBar;
}

@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) esTabBarController *esTabBarController;
@property (nonatomic, retain) UISearchBar *searchBar;

私の患者ViewControllerSearchでは、ViewDidLoadで行います:

dataArray = [[NSMutableArray alloc] init];    
letters = [[NSMutableArray alloc] init];

そして、HTTP リクエストで配列を埋めます。

それはうまくいっています。

後:

[self.navigationController pushViewController:controller                                         animated:YES];

私が戻ってきたとき、(viewDidloadが再びロードされない、それがdataArrayを満たすための新しいリクエストがない理由です)dataArray、そしてすべてが空です。tableView には以前の状態が表示されますが、更新するとそれも消えます。

何かアドバイスはありますか?

前もって感謝します。

4

1 に答える 1

1

「viewDidLoad」が呼び出されていない理由は、アプリに初めて表示されたときに既に読み込まれているためです (起動時に想定しています)。

「viewWillAppear」と「viewDidAppear」は、ビューがアプリケーションに表示される前後に常に呼び出されることに気付くでしょう。

これらは、ビューがユーザーに表示されるときにデータを更新する場合に使用する適切な方法です。

于 2012-04-17T14:30:24.173 に答える