2011-12-30 13 views
2

私はUItableViewControllerを持っています。このクラスの中には、別のUIViewControllerを起動しようとしている次のメソッドがあります。UITableViewControllerからUIViewcontrollerを起動するとアプリケーションがクラッシュする

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  
    NSLog(@"About to launch MyDetail View controller"); 
    [self performSegueWithIdentifier:@"myDetailSegue" sender:self]; 
} 

仕事をdidntの、次のように、アプリのフリーズと私はmain.mファイルにメッセージが表示されました:私は、このバージョンを使用し、セグエを使用して2つを接続しようとしたし、それに識別子を与えました「」スレッド1が「

を信号SIGABRTを受けそれではなぜUIStoryboardウェイ仕事とセグエではないだろう。セグエを削除し、次のようにのUIViewControllerのインスタンスを作成しようとした、働いていた。しかし、今Imは混乱

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSLog(@"About to launch my Detail View controller"); 
    UIStoryboard *sboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; 
    UIViewController *myDetailVC = [sboard instantiateViewControllerWithIdentifier:@"myDetailVC"]; 
    [self.navigationController pushViewController:myDetailVC animated:YES]; 
} 

? ? 誰かが助けてください、 私は困惑している。

+0

クラッシュログを投稿してください。 – Ilanchezhian

+0

どこで見つけることができますか? – banditKing

答えて

3

あなたは直面している問題を理解できませんが、uitableviewを使用しているため、新しいビューコントローラにそのセルを接続して、「プッシュ」セグエメソッドを選択してください。これを済ませたら、ユーザーにdidselectrowatindexpathメソッドの代わりに次のコードをアプリケーションに追加してください。

  • (ボイド)prepareForSegue:(UIStoryboardSegue *)セグエ送信者:(ID)、送信者{

    /* 行が選択されると、セグエを宛先として詳細ビューコントローラを作成します。 詳細ビューコントローラの詳細項目を、選択した行に関連付けられた項目に設定します。 */ IF([セグエ識別子] isEqualToString:@ "Showcategorydetails"]){

    NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow]; 
    CategoryDetailsController *detailViewController = [segue destinationViewController]; 
    detailViewController.category_title = [maincategories_array objectAtIndex:selectedRowIndex.row]; 
    

    }}

+0

ありがとうございます。問題は、コンセントの接続がすべて乱れているため、宛先のViewControllerがクラッシュしていたことです。ストーリーボード上のViewControllerを別のView Controllerからコピーして、コンセント接続もコピーしました。したがって、このViewControllerのコピーは、古いViewControllerのアウトレットに接続されていました。これが修正されたら、私は行きました。 ありがとう – banditKing

関連する問題