web-dev-qa-db-ja.com

UIAlertControllerの使用方法

私はいくつかのウェブサイトから入手したパックマンゲームでこのコードを使用しようとしていますが、次のコードには修正方法がわからない2つのエラーがある以外はUIAlertViewUIAlertControllerに変更する必要がありました(私はプログラミングが初めてで、これは本当に初心者の質問だと感じています-ごめんなさい!!)

最初のエラーは4行目です:セレクターalertControllerWithTitleのクラスメソッドはありません

2行目のエラーは最後の行にあります。セレクターshowを宣言しているインターフェースはありません

- (void)collisionWithExit: (UIAlertController *)alert {

    if (CGRectIntersectsRect(self.pacman.frame, self.exit.frame)) {

        [self.motionManager stopAccelerometerUpdates];

        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Congratulations"
                                                        message:@"You've won the game!"
                                                       delegate:self
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil
                                              preferredStyle:UIAlertControllerStyleAlert];
        [alert show];
    }
}
18
Howie Chowie

次のコードを確認してください。

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert"
                           message:@"This is an alert."
                           preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                               handler:^(UIAlertAction * action) {}];

[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
45
iOS Developer

以下のコードを確認してください。

Objective-Cの場合:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Alert" message:@"Message" preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                        //button click event
                    }];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil];
[alert addAction:cancel];
[alert addAction:ok];
[self presentViewController:alert animated:YES completion:nil];

for Swift 4.x:

let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
  switch action.style {
  case .default:
    print("default")
  case .cancel:
    print("cancel")
  case .destructive:
    print("destructive")
  }
}))
self.present(alert, animated: true, completion: nil)
36
Ravi Dhorajiya