2012-04-17 3 views
0

에 다시 와서 iOS ViewController 속성이 사라집니다.이 문제에 대한 스레드를 찾지 못했습니다. 그래서 내가 여기서 묻습니다.새 컨트롤러를 밀고 내비게이션 컨트롤러

나를 도와 줄 수 있으면 정말 행복 할 것입니다.

내비게이션 컨트롤러가 있는데, TableViewController를 밀어 넣고 있습니다. 내 문제는 내가 뒤로 버튼을 클릭하면 내 이전 tableViewcontroller 이전 데이터와 함께 나타납니다,하지만 내 테이블에 대한 datasource dataArray 속성이 비어 있습니다.

내 코드 : 내 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; 

내가있는 viewDidLoad에서 수행

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

그리고 난 내 배열을 채우기 HTTP 요청과.

잘 작동합니다. 후

: dataArray

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

내가 돌아올

은 (dataArray 충전에 대한 새로운 요청이없는 이유 viewDidLoad에 다시로드되지는 먹으 렴), 모든 것이 비어 있습니다. tableView 내 이전 상태를 보여줍니다,하지만 그 dissapears 너무 상쾌.

조언이 있으십니까?

미리 감사드립니다.

답변

1

"viewDidLoad"가 호출되지 않는 이유는 앱에 처음으로로드되었을 때 이미로드 되었기 때문입니다 (시작시 가정).

"viewWillAppear"및 "viewDidAppear"은 뷰가 응용 프로그램에 표시되기 전후에 항상 호출된다는 것을 알 수 있습니다.

보기가 사용자에게 표시 될 때 데이터를 업데이트하려는 경우이 방법을 사용하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. 하지만 내 배열이 항상 사라지는 이유를 말해 줄 수 있습니까? 배열이 메모리에 남아있을 수 있다면 나는 행복 할 것이다. 나는 다른 녀석에 의해 쓰여진 다른 컨트롤러를 가지고 있는데 거기에 그는 ViewDidLoad에서'data [[configManager sharedInstance] .config objectForKey : @ "institutionList"] retain];을 만들고 im은 메모리에 남아있다. 뒤로 탐색. –

관련 문제