私はこのSIGABRTを取得していないようです。私はこのストーリーボードのiOSアプリケーションを持っており、ストーリーボードには私はUITableViewControllerを持っています。さて、私はTVCのセルを取って、 "segue"ビューコントローラを押すことができますが、特定の条件で "segue"アクションを停止する必要があればどうしますか? prepareForSegue:sender:メソッドはそれを許可しておらず、トランジションが実行される直前に呼び出される唯一のコールバックであるようです。performSegueWithIdentifierとinstantiateViewControllerWithIdentifier
だから私はtableView:didSelectRowAtIndexPath:に行くことができ、プログラムでセグを実行することができたと思います。準最適ですが、まだ...
まあ、間違っているとわかります。少なくとも、私は間違ったことをしています。それを行うための最も明白な方法は
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"TheOtherIdentifier" sender:self];
}
が、任意の有用な情報を与える(とはい、私はそれがアプリのクラッシュを行い、そのラインだと確信しています、私はありませんSIGABRT、と全体のアプリがクラッシュするだろうデバッガでチェック:)さらに、次のコードのため、ロードしようとしているVCに正しく識別子が設定されています。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"TheOtherIdentifier"];
[self.navigationController pushViewController:vc animated:YES];
}
"works"引用符は、これが明らかにそのような移行を実行する方法ではないことを示しています。
今:アイデア?
この識別子を宛先ビューコントローラに設定したとします。しかし、セグ自体の識別子を設定しましたか?これは、最初のケースで使用する必要がある識別子です。 –
私はそれを見逃していました。さらなるコメントについては、T.J.の回答を参照してください。 – Morpheu5