2012-05-01 2 views
3

여기에서이 항목을 보았지만 나에게 클릭되거나 해결 된 솔루션은 없습니다. 는 I은 있는 UITableViewController가 가지고 (호출 myUITableViewController) 및 요건은 사용자가 myUITableViewController에서 처음 세 개의 행 중 하나를 선택하면, 그들은theFirstViewController 가져온 것이다되도록하지만, 만약 그들은 어떤 행을 위의 위의 세 가지를 선택 했었습니다. 세 행은 의 second viewController입니다. 하나의 tableview 셀에서 여러개의 segues를 허용하지 않는 스토리 보드를 사용하고 있습니다. 그러나 여러개의 segue를 직접 추가 할 수도 있습니다. myUITableViewController 그러나 적절한 segue 코드로 고민하고 있으며 적절한 해결책을 찾지 못했습니다.UITableViewController 테이블 뷰 셀의 다중/선택 사항 segues

답변

4

가장 좋은 방법은 IB의 직접 코드를 사용하지 않고 대신 tableview:didSelectRowAtIndexPath:을 사용하고 테이블에서 행을 선택할 때마다 수동으로 코드에서 호출하는 것입니다.

테이블 뷰 자체의 대상을 테이블 내 특정 요소가 아닌 대상으로 설정해야합니다. 이 같은

뭔가 :

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {   
    NSString *identifierOfSegueToCall; 
    if (indexPath.row < 3) { 
     identifierOfSegueToCall = @"theFirstViewControllerSegueIdentifier"; 
    } else { 
     identifierOfSegueToCall = @"theSecondViewControllerSegueIdentifier"; 
    } 

    [self performSegueWithIdentifier:identifierOfSegueToCall sender:self]; 
} 
+0

감사합니다,하지만 여전히 거기. 스토리 보드를 사용하여 ViewController에서 다른 사람에게 '푸시'할까요? 그것은 작동하지 않는 것 같습니다. – user1278974

+0

예, 세그들 이름을 클릭하고 식별자를 설정해야합니다. 식별자와 segue의 이름에 동일한 값을 사용했는지 확인하십시오. (Identifier에 대해 올바른 명명 규칙을 사용하도록 코드를 업데이트합니다.) – lnafziger

+0

어쩌면 나는 뭔가를 놓치고있다 ... 위의 NSString은 identifierOfSegueToCall이라고 불리며, nameOfSegueToCall이라는 var이있다 ... 이것은 의도적 인 것인가? 또한 prepareForSegue와 같은 뷰 컨트롤러에 다른 segue 함수가 있습니까? 아니면이 하나의 전화? 릭 – user1278974

관련 문제