2012-04-17 6 views
0

この問題のスレッドは見つかりませんでした。新しいコントローラをプッシュしてナビゲーションコントローラに戻った後、iOS ViewControllerプロパティが消えてしまいます

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

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

マイコード:私はのviewDidLoadで行う私のpatientViewControllerSearchで

@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; 

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

と私は私の配列を埋めるHTTPリクエストを持ちます。

それはうまく動作します。後

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

私が戻ってくるときは、dataArray(のviewDidLoadが再びロードしない、dataArrayを充填するための新たな要求がない理由thatsの)、およびすべてが空です。私の前の状態がtableViewに表示されますが、あまりにも消え去った後に。

アドバイスをいただけましたか?

ありがとうございます。

答えて

1

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

あなたのアプリケーションでビューが表示される前/後に、常に "viewWillAppear"と "viewDidAppear"が呼び出されます。

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

+0

ありがとうございました。しかし、私のアレイがいつも消えてしまう理由を教えてもらえますか?その配列がメモリに残っていれば私は満足しています。私は他の人が書いた他のコントローラを持っています。そこには、ViewDidLoadで 'data [[configManager sharedInstance] .config objectForKey:@" institutionList "] retain];'が作成され、配列全体がメモリに残っています戻ってナビゲート。 –

関連する問題