2014-07-21 5 views
0

현재 테이블 뷰는 어떤 이유로 더블 세그 연결을 생성합니다.Double Segue IOS

[홈] -> [하위보기 # 2] -> [같은 하위보기 # 3]

나는 그것이 세 번째보기로 다음을 통해 나를 보내는 행을 클릭하면 [# 3]. 이것은 올바른보기 정보이지만, 한 단계 [# 2] 만 가고 싶습니다. 클릭하면 문제가 중요 해지고 집 대신 [# 2] (으)로 돌아갑니다.

이 설정 [# 2]에 명확히하기 위해 == [# 3]

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow]; 
    NSInteger row = myIndexPath.row; 
    if ([segue.identifier isEqualToString:@"ShowLocationsTableView"]) 
    { 
     NSLog(@"PREPARE"); 
     LocationsTableViewController *ViewController = segue.destinationViewController; 

     ViewController.categoryDetailModel = @[_categoryTitle[row], _categoryImages[row]]; 
    } 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
if (tableView == self.tableView) { 
    // I assume you have 1 section 
    NSLog(@"DIDSELECTROW"); 
    NSLog(@"INDEX PATH %i", indexPath.row + 1); 
    NSLog(@"%i", [tableView numberOfRowsInSection:0]); 
    if (indexPath.row + 1 == [tableView numberOfRowsInSection:0]) { 
     NSLog(@"ABOUT"); 
     [self performSegueWithIdentifier:@"aboutCat" sender:self]; 
    } else { 
     NSLog(@"ELSE"); 
     [self performSegueWithIdentifier:@"ShowLocationsTableView" sender:self]; 
    } 
} 
+1

당신은뿐만 아니라 스토리 보드에 SEGUE을 추가 한? –

+0

이 경우 segue를 사용하지 마십시오. 별도로 사용하고 정상적으로 누릅니다. Segue없이 스토리 보드 식별자를 사용하여 스토리 보드에서 ViewController를 쉽게 인스턴스화 할 수 있습니다. – iphonic

+0

또한 코드는 무시 무시한 모양입니다. 속성에 접근하기 위해'[]'를 사용하지 마십시오 ('[indexPath row]'와 같이 점 표기법을 사용하십시오). –

답변

3

iphonic 말했듯이, 단지 segues를 사용하는 모든 오버 헤드를 할 이유가 없다.

didSelect 메서드를 편집하고 뷰 컨트롤러를 직접 푸시 할 수 있습니다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (tableView == self.tableView) { 
     UIViewController *viewController = nil; 
     if (indexPath.row == [tableView numberOfRowsInSection:0] - 1) { 
      viewController = [self.storyboard instantiateViewControllerWithIdentifier:<#Identifier#>]; 
      //Do any setup needed by casting your viewController. 
     } else { 
      viewController = [self.storyboard instantiateViewControllerWithIdentifier:<#Identifier#>]; 
       //Do any setup needed by casting your viewController. 
     } 
     [self.navigationController pushViewController:viewController]; 
    } 
} 
0
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (tableView == self.tableView) 
    { 
    UIViewController *viewController = nil; 
    if (indexPath.row == [tableView numberOfRowsInSection:0] - 1) { 
     viewController = [self.storyboard instantiateViewControllerWithIdentifier:<#Identifier#>]; 
     //Do any setup needed by casting your viewController... 
    } else { 
     viewController = [self.storyboard instantiateViewControllerWithIdentifier:<#Identifier#>]; 
      //Do any setup needed by casting your viewController... 
    } 
    [self.navigationController pushViewController:viewController]; 
    } 
}