현재 첫 번째로드 된 연결 클래스를 호출 할 때 내 파서 뷰를 설정하려고합니다. 그러면 파서 클래스를 호출하고 내 파서 클래스에서 내 ViewController의 메서드를 호출합니다. 설정중인 원래보기. 이 메서드는 후자의 배열에 전달됩니다.reload tabledata가 cellForRowAtIndexPath에 영향을줍니다.
방법은이 방법으로 그때
[self.tableView reloadData];
를 호출하고 (내 논리를 통해 갈 수 있도록 내가 그렇게 할 걸려 라하는 것은 재 장전 cellForRowAtIndexPath이며,이의 ViewController에서 배열 변수에 배열을 전달 if 문) 및 if ([returnedArray count] != 0){
을 확인한 다음 그 스레드를 다시 실행하면 스레드가이 대리자 메서드로 돌아 가지 않으므로 if 메서드로 되돌릴 수 없습니다.
MORE INFO : 그래서 우선
때 상기의 ViewController로드
있는 tableView는 : cellForRowAtIndexPath는 : 전화를 모두 완벽하게 보이는 내 jQuery과를 설정하고, 그 다음에 연결 내있는 NSURLConnection 메소드를 호출 내 서버에 모든 데이터를 다운로드 한 다음이를 내 파서 클래스로 전달합니다. 거기에서 파서가 그 일을 처리하고 모든 것이 잘됩니다.
이 코드 내있는 tableView의 모습입니다 : cellForRowAtIndexPath :, 방법
//..
if (indexPath.row == 0){
if ([FilterArray count] == 0){
[cellActivityIndicator startAnimating];
//-- Start NSURLConnection
EngineRequests *engineRequests = [[EngineRequests alloc] init];
[engineRequests initalizePacketVariables];
}
if ([FilterArray count] != 0){
[cellActivityIndicator stopAnimating];
cell.accessoryView = nil; //hides activity indicator
cell.userInteractionEnabled = YES;
cell.backgroundColor = [UIColor whiteColor];
UILabel *label1;
label1 = (UILabel *)[cell viewWithTag:1];
label1.textColor = [UIColor darkGrayColor];
UILabel *label2;
label2 = (UILabel *)[cell viewWithTag:2];
label2.textColor = [UIColor darkGrayColor];
//...etc
을 내 파서 클래스의 parserDidEndDocument 방법 나는 MAINVIEW로 다시 NSArray를 전달하고 내부.
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@",@"ISCHECKED",@"T"];
NSArray *filteredArray = [parsedDataArrayOfDictionaries filteredArrayUsingPredicate:predicate];
//call method in VieController1 to pass array over
SearchViewController *searchViewController = [[SearchViewController alloc] init];
[SearchViewController initFilterArray:filteredArray];
}
그래서 나는 내 VC1과 내가하는 .m 파일
에 분명히 다음 .H에서 선언 한 방법을 통해 머리를 뒤로이 내가에있는 그 모든 코드입니다 그것.
#pragma - Reciver methods
-(void)initFilterArray:(NSArray*)array
{
//initalise array variable for use in latter views
FilterArray = array;
//reload to make cell white
[self.tableView reloadData];
// NSLog(@"%@", FilterArray);
}
내가 NSLog, 그것은 내 filitered 배열 모든 것을 표시하도록 주석을 해제하면 스레드가이 방법으로 만드는 모든 것을 실행하는 코드 .. 디버깅하는 동안. 그러나 어떤 이유로 reloadData가있는 tableView를 호출하는 것 같지 투여 량 : cellForRowAtIndexPath이 : 희망이 추가 정보가 도움이 될 것입니다 I 등 중단 점
그래서 ... 그것을 디버깅 때문에 ... 나는 이것을 알고 당신이 나를 도와 :)
화면에 표시되는 셀을 다시로드해야합니다. 어떤 세포도 전혀 재 장전하지 않습니까? –
아니요 그 셀을 다시로드하지 않고 메소드를 디버깅했습니다. 그리고 그 코드가 실행 된 후에는 절대 이동하지 않습니다. –
viewDidLoad와 같이보기를 설정하기 만하면 reloadData를 호출하지 마십시오. 테이블 행의 셀을 요청할 때 테이블 셀을 구성하게하십시오. 테이블이 이미 표시되어 있고이를 업데이트해야하는 경우 reloadData를 호출하십시오. – jamihash