このSIGABRTを手に入れられないようです。私はこのストーリーボードiOSアプリケーションを持っており、ストーリーボードにはUITableViewControllerがあります。これで、TVCのセルを取得して、「segue」ビューコントローラーをプッシュすることができますが、特定の条件で「segue」アクションを停止する必要がある場合はどうなりますか? prepareForSegue:sender:メソッドでは許可されていないため、どうやらできません。遷移が実行されようとしているときに呼び出されるコールバックはこれだけのようです。
そのため、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];
}
「機能する」。引用符は、これが明らかにそのような移行を実行する方法ではないことを示しています。
今:アイデア?
これを試して: