2つのビューコントローラを備えたストーリーボードを使用していますセグエ(segue)で互いに接続されている。最初のビューコントローラにはボタンがあり、そのボタンをクリックすると2番目のビューコントローラに移動します。問題は、アラートビューをポップアップしたいのですが、アラートビューを - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
メソッドが、これの問題はそれが行くことです2番目のView Controllerに送信し、その後、アラートビューをポップアップ表示します。最初のビューコントローラーでポップアップし、[キャンセル]ボタンをアラートビューから押すと、最初のビューコントローラーに残ります。どのように私はこれを行うことができます任意のアイデア?
回答:
回答№1は1これを行うには、次のようなことが必要です。
- ストーリーボードのボタンからセグを外します。
- 実装する
IBAction
そのボタンのために警告を表示する - を使用する
clickedButtonAtIndex
デリゲートのメソッドUIAlertView
ボタンを押してください。ユーザーが[OK]を押すと次のビューに進みます
追加する IBAction
次のように:
- (IBAction)showAlert:(id)sender
{
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Can I Move ?"
message:nil
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:@"Cancel",nil];
[message show];
}
そしてデリゲートメソッドを実装する:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"OK"])
{
[self.navigationController pushViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"Other View"] animated:YES];
}
}
注意: また、あなたは使用することができます performSegueWithIdentifier 次のビューに移動するための
回答№2については2
アラートの結果としてアラートを表示する必要がありますボタンをタップし、アラートの代理人として行動します。アラート完了デリゲートコールバック(alertView:willDismissWithButtonIndex :)を取得した場合にのみ、セグをトリガーするかどうかを決定します。