XMLリターンによっては、UButtonタッチで現在のsegue
を実行したくありません。ios segue "cancel"
私は私がしたいsegue
選ぶことができます知っているがを行うが、どのように私はsegue
ない実行を作りますか?または少なくともは実行できませんsegues
のいずれかを実行しますか?
XMLリターンによっては、UButtonタッチで現在のsegue
を実行したくありません。ios segue "cancel"
私は私がしたいsegue
選ぶことができます知っているがを行うが、どのように私はsegue
ない実行を作りますか?または少なくともは実行できませんsegues
のいずれかを実行しますか?
デプロイメントターゲットがiOS 6.0以降の場合、セグを実行する場合はYES
、そうでない場合はNO
を返すように、the -[UIViewController shouldPerformSegueWithIdentifier:sender:]
methodを上書きできます。
展開先がiOS 6.0より前の場合は、shouldPerformSegueWithIdentifier:sender:
というメッセージは表示されません。あなたのストーリーボードでは、ボタンからセグを引き出さないでください。代わりに、ボタンのView ControllerからSegueを引き出し、Segueに識別子を与えます。 View ControllerのIBAction
にボタンを接続します。アクションで、セグを実行するかどうかを確認します。それを実行したい場合は、自分自身にperformSegueWithIdentifier:sender:
を送って、あなたが割り当てた識別子をストーリーボードに渡します。例えば
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
:
Apple Developer Documentationは、ストーリーボード内で管理されてセグエをキャンセルするための正しい方法を持っている
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
if ([identifier isEqualToString:@"listPopover"]) {
if (self.listPopover == nil) {
// Allow the popover segue
return YES;
}
// Cancel the popover segue
return NO;
}
// Allow all other segues
return YES;
}
' shouldPerformSegueWithIdentifier:sender: 'メッセージはiOS 6で追加され、以前のバージョンのiOSこの質問が投稿されたとき、iOS 6はリリースされていませんでした。 –
は、このスレッドをチェックアウト:https://stackoverflow.com/a/42161944/4791032
することができますだけそれをチェックしてくださいfunc tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath)
は ' [self performSegueWithIdentifier:@ "myIdentifier" sender:self]; '正しい? Xcodeの 'SIGABRT' :( – Jacksonkr
何が起こっているのかを見るために例外ブレークポイントを設定する必要があります –