2012-08-16 2 views
0

하나의 항목을 선택한 후 행이있는 테이블보기가 있습니다. 새 데이터 소스로 tableView를 표시하려고합니다. 선택한 행 다음에 tableView의 데이터 소스를 변경하십시오.

내가 구현하려고 :

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

[self.searchDisplayController setActive:YES animated:YES]; 
    Game *game = [self.filteredListContent objectAtIndex:indexPath.row]; 
    //name your class names with capitals 
    NSMutableArray *arrayToBeAdded= [[NSMutableArray alloc]initWithArray:newgamearray]; 
    [ListContent removeAllObjects]; 
    [ListContent addObject:arrayToBeAdded]; 

을하지만 난 초기화의

[ListContent removeAllObjects]; 

구현에 exeption를 받고 : 내가 선언 .H 파일에서

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellID = @"cellSgames"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellID]; 

    if (cell == nil) 
    { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellID] autorelease]; 
     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    } 

    Gmage *game = [self.ListContent objectAtIndex:indexPath.row]; 

:

NSArray AllList; 
NSMutableArray ListContent; 

어떤 아이디어가 있습니까?

+0

왜 새 데이터 소스로 tableView를 표시하겠습니까? – freelancer

+0

아이템을 선택한 후 아이를 보여주고 싶습니다. – vadim

+0

@vadim 예외는 무엇입니까? ListContent는 어디에 선언 되었습니까? 이게 뭐야? –

답변

3

현재 목록을 조작하는 대신 원하는 데이터 원본으로 새 UITableViewController를 만듭니다. UINavigationController를 사용하는 경우 사용자 경험이 향상되고 현재 문제가 방지됩니다.

예 : didselect 방법의 배열을 재설정하고 작업을해야 새로운 콘텐츠와 테이블보기를 다시로드하는 일반적 경우

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    InnerTableViewController *innerTVC = [[InnerTableViewController alloc] initWithNibName:@"InnerTableViewController" bundle:nil]; 

    [self.navigationController pushViewController:innerTVC animated:YES]; 
    [innerTVC release]; 
} 
+0

동일한보기 /보기를 변경하지 않고 변경하고 싶습니다 ... 신속하게 작업하고 싶습니다. – vadim

+0

필자는 여전히 제거해야 할 데이터 소스를 조작하여 훨씬 빠른 결과를 얻지 못할 것이라고 개인적으로 생각하고리스트를 업데이트하고 하나의 큰 컨트롤러 클래스에서 모든 것을 추적합니다. 그러나 이것이 당신의 선택이라면 ListContent가 무엇인지 알리고 초기화 할 코드를 보여주십시오. – Cyprian

+0

@vadim 당신은 당신이 그것을하려고하는 길을 빨리 얻지 못할 것입니다. 새 tableviewcontroller 인스턴스로 이동하는 것은 길입니다. –

0

.

내 생각에 줄을 때 : [ListContent removeAllObjects];

ListContent는 유효한 포인터가 아닙니다. 여기에 충돌 이유가 보이지 않습니다.

+0

대신 1 개의 더 많은 것 : [ListContent addObject : arrayToBeAdded]; 당신은 다음과 같이해야합니다 : [ListContent addObjectsFromArray : arrayToBeAdded]; – Amit

+0

그 라인에 오는 그때 그때 그 전에 주 int retVal = UIapplicationMain ... – vadim

+0

공유 코드가 정확히 무엇이 문제인지 말할 충분하지 않지만 간단한 응용 프로그램에서 비슷한 방법을 구현할 수 있습니다 문제 해결. 나는 이것이 나를 위해 일하는 것처럼 노력했다. – Amit

관련 문제