2013-05-01 2 views
0

나는 계층 구조 데이터 구조를 보여주는 tableviews 작업하고 있습니다. 첫 번째 노드를 가져 와서 테이블 뷰에서 아들을 보여주고 트리 끝까지 반복합니다. 나는이 방법으로하고 있어요 :새 UITableViewController 생성 및 표시

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if([[actualNode getSonAtIndex:0] sonsCount]>0) { 
    NSLog(@"New level"); 
    actualNode = [actualNode getSonAtIndex:indexPath.row]; 
    [self.tableView reloadData]; 
} else { 
    NSLog(@"Service"); 
    [self performSegueWithIdentifier:@"Service" sender:NULL]; 
} 

그것은 올바른 방법은 아니지만 문제는 내가 나무가 그래서 스토리 보드에서 그들을 만들 수 없습니다 얼마나 많은 수준 모르겠입니다. 아이디어는 각 레벨을 표시하기위한 하나의 TableView 만 생성하는 것이지만 스토리 보드에서 일부 컨트롤러로 작업 할 경우 할 수있는 것처럼 NavBar의 이전 레벨로 되돌릴 수는 없으며 애니메이션. 그래서, 그것을 할 방법이 있습니까? 예 :

MyNextLevel *nextlevel = [MyNextLevel alloc]; 
[nextlevel setNode: actualNode] 
Myactualtableview = nextlevel; (Here the next level is showed in the screen with animations and with the possibility to go back to the previous level) 

감사합니다.

답변

1

내가 스토리 보드를 좋아하지 않는 이유입니다. 당신이하고 싶은 것을 할 수는 있었지만 (정확하게 이해한다면), 스토리 보드는 그것을 떨어 뜨립니다. 어쨌든 우리는 항상 iOS 3 및 iOS 4에서 다시해야했던 코드에서 일을 수행하는 유연성이 없습니다.

어쨌든,이 같은 것을하고 싶지 :

UITableViewController* tvc = [[MyTableViewController alloc] initWithNibName:@"MyNib" bundle:nil]; 
[self.navigationController pushViewController:tvc animated:YES]; 

귀하의 비즈니스 로직은 MyTableViewController의 클래스를 선택할 수 있습니다. MyTableViewController는 유연한 무언가가 될 수 있습니다.이 두 행 사이에는 올바른 데이터를 표시하는 구성 정보가 있습니다. (나는 그래도 인정해야만한다. 은 스토리 보드를 사용하여 테이블 뷰 컨트롤러를 performSegue:에 구성 할 수있다.)

+0

처음에는 답을 고맙겠지 만 아직 시도하지 못했습니다. 특정 NIB 파일을 만들지 못했습니다. 내 클래스의 이름은 "NextLevelController"이며 UITableViewController에서 상속받습니다. 사용중인 찌꺼기의 이름을 어떻게 알 수 있습니까? – Sergiodiaz53

+0

UITableViewController와 함께 펜촉을 사용하지 않아도됩니다. 이 경우 펜촉으로 nil을 공급하면 UITableViewController가 기본 테이블 뷰를 만들고 모든 것을 잘 연결합니다. – matt

+0

UITableViewController와 함께 펜촉을 사용하려면 * Xcode에서 UITableViewController 하위 클래스를 만들 때 펜촉을 원하는지 묻는 확인란을 선택해야합니다. 그렇게하면 올바른 이름의 펜촉을 얻을 수 있으며 테이블 뷰와 모든 것이 제대로 연결됩니다. – matt

관련 문제