작은 배경을 사용하면 여기에서 수행하려고하는 것을 얻을 수 있습니다. 몇 가지 질문이 있으니 나와 함께 견뎌주십시오.두 개의 UITableViews 채우기
Im 오늘의 다가오는 게임을 보여주는 내 iPhone 응용 프로그램을 만듭니다. 아래 이미지에서 구조를 볼 수 있습니다. "TableView1"하고 한 타격을 "TableView2"
는 상위 테이블 뷰를 호출 할 수 있습니다. 현재 Json 텍스트를 반환하는 웹 사이트에서 TableView1에 대한 데이터를 채우고 있습니다. 여기
http://afternoon-springs-7986.herokuapp.com
그리고
는 GamesInfoViewController.m (스토리 보드를 통해 TableView1에 연결되어있는 클래스)- (void) retrieveData{
NSURL *url = [NSURL URLWithString:@"http://localhost:5000"];
NSData *data = [NSData dataWithContentsOfURL:url];
jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
GamesInfoArray = [[NSMutableArray alloc] init];
for (int i= 0; i < jsonArray.count; i++)
{
NSString *gameTime = [[jsonArray objectAtIndex:i] objectForKey:@"time"];
NSString *gameID = [[jsonArray objectAtIndex:i] objectForKey:@"identity"];
NSString *homeTeam = [[jsonArray objectAtIndex:i] objectForKey:@"homeTeam"];
NSString *homeScore = [[jsonArray objectAtIndex:i] objectForKey:@"homeScore"];
NSString *awayTeam = [[jsonArray objectAtIndex:i] objectForKey:@"awayTeam"];
NSString *awayScore = [[jsonArray objectAtIndex:i] objectForKey:@"awayScore"];
[GamesInfoArray addObject:[[GameInfo alloc] initWithidentity:gameID andtime:gameTime andawayTeam:awayTeam andawayScore:awayScore andhomeTeam:homeTeam andhomeScore:homeScore]];
}
[self.tableView reloadData];
}
당신이 내가있는 NSMutableArray에 정보를 저장하고 볼 수있는 것처럼 그것을 수행하는 코드입니다 GamesInfoArray라고합니다. 이제 GamesInfoArray에 저장된 객체 중 일부가 TableView2를 채우는 데 사용됩니다 (각 객체에 저장된 시간 값을 사용하여 특정 게임이 시작되었는지 확인하기 위해 if 문을 작성합니다)
나는 이것을 수행하는 가장 좋은 방법을 생각하고 있습니다. 웹 서버에서 정보를 가져 와서이 정보를 처리하는 새로운 클래스에 넣은 다음 두 개의 다른 NSMutableArrays에 정보를 저장하는 위의 코드를 작성하는 것입니다. 하나는 지금 당장 가져 왔고 다른 하나는 TableView2를 채 웁니다. 그래서 각 TableView는 올바른 NSMutableArray에서 필요한 정보를 얻을 수 있습니다.
이
은 TableView1의 예입니다당신이 녹색 버튼이 라이브를 의미하며 그
TableView2
에 표시 할 개체의 예이다가 볼 수있는 것들 이후 내 첫 번째 응용 프로그램과 나는 전에 이런 짓을 한 적이 없기 전에 내가 몇 가지 팁을 사랑한다면 나는 옳다고 생각하거나 다른 방식으로해야한다.당신은 아무것도 추가 코드 나 정보가 필요하면 TableView2는 데이터를 저장하는 별도의 클래스를 만들 의미가 GamesInfoViewController의 정보에 의존하기 때문에 그냥 날 아픈 업데이 트 코드
각보기 컨트롤러에서 retreiveData를 사용하여 싱글 톤 클래스의 정보를 얻은 다음 맞습니까? @ psobko –
서버에서 라이브 데이터를 가져 오려면 retrieveData를 사용하고 신선한 데이터를받은 지 얼마나 되었는 지 확인하십시오. 그렇게하면 서버에서 데이터를 가져 오는 데 오류가있는 경우 앱 진행 방법을 결정할 수 있습니다. – psobko