2012-05-01 5 views
3

ここではこのトピックを見たことがありますが、クリックしたり、私のために働いたソリューションはありません。 私は、のUITableViewControllerを持っている(myUITableViewControllerそれを呼び出す)との要件は、ユーザーがmyUITableViewControllerから最初の3行の1つを選択した場合、彼らはtheFirstViewControllerにもたらしますが、もしされるようなものです彼らはtheSecondViewControllerにもたらされるだろう上の任意の行を選択しました。私はストーリーボードを使用しています。ストーリーボードは、複数のセグを1つのテーブルビューセルから外すことはできません。 しかし、私はmyUITableViewController から直接、複数のセグエのを追加することができますが、その後、私は適切なセグエコードに苦しんでいますし、適切な解決策を見つけていません。UITableViewControllerテーブルビューセルからの複数の/オプションのセグレット

答えて

4

最良の方法は、IBから直接seguesを使用する代わりに、tableview:didSelectRowAtIndexPath:を使用して、手動で、彼らはテーブルの行を選択したときに、コードからそれらを呼び出さないことであろう。

あなたの設定すべき目的地までテーブルビュー自体からsegues、およびテーブル内の特定の要素ではありません。このような

何か:

- (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の名前に同じ値を使用していることを確認してください。 (識別子に正しい命名規則を使用するようにコードを更新します)。 – lnafziger

+0

多分私は何かを見逃しています...上のNSStringはidentifierOfSegueToCallと呼ばれ、次にnameOfSegueToCallと呼ばれるvarがあります...これは意図的なものですか?また、prepareForSegueのようなView Controllerに他のsegue関数がありますか?それともこの1回の呼び出し?リック – user1278974

関連する問題