私は私が取得し続けているこのSIGABRTを取得していないようです。私はこのストーリーボードiOSアプリケーションを持っており、ストーリーボードにはUITableViewControllerがあります。これで、TVCのセルを取得して、「セグエ」ビューコントローラーをプッシュさせることができますが、特定の条件で「セグエ」アクションを停止する必要がある場合はどうなりますか?prepareForSegue:sender:メソッドでは許可されていないため、どうやらできません。遷移が実行されようとしているときに呼び出されるコールバックはこれだけのようです。
したがって、tableView:didSelectRowAtIndexPath:に移動して、プログラムでセグエを実行できると思いました。最適ではありませんが、それでも…</ p>
まあ、それは私が間違って推測したことがわかりました。または、少なくとも、私は何か間違ったことをしています。それを行う最も明白な方法は
- (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];
}
「動作します」。引用符は、これがそのような遷移を実行する方法ではないことを明らかに示しています。
今:アイデア?