ユーザー入力なしでUIAlertControllerを作成して閉じるにはどうすればよいですか?(迅速)

LFS

私はUIAlertControllerに関する多くのチュートリアルを探してきました。これまでのところ、私が見つけた方法は、UIAlertControllerをボタンまたはラベルにリンクしてアクティブ化し、IBActionを呼び出すことでした。

ユーザーがアプリに入ったときにアラートを自動的にポップするようにコードを複製しようとしました(チュートリアルを実行するかどうかをユーザーに尋ねたかったのです)。ただし、エラーが発生し続けます。

警告:ビューがウィンドウ階層にないMainViewControllerでUIAlertControllerを提示しようとしています!

次に、addChildViewControllerとaddSubviewを介してUIAlertControllerをMainViewControllerに追加しようとしました。ただし、次のエラーが発生します。

アプリケーションがアクティブなコントローラーをモーダルに提示しようとしました

presentViewController関数が使えないと思い、コメントアウトしました。

UIAlertControllerは表示されますが、キャンセルまたは決してボタンをクリックしようとすると、このエラーが発生します。

プレゼンターが不明なUIAlertControllerを却下しようとしています。

私は本当に困惑しています。誰かが私が間違っていることを共有できますか?どうもありがとうございます。これがコードです。

    func displayTutorial() {

    alertController = UIAlertController(title: NSLocalizedString("tutorialAlert", comment: ""), message: NSLocalizedString("tutorialMsg", comment: ""), preferredStyle: .ActionSheet)

    self.addChildViewController(alertController)
    self.view.addSubview(alertController.view)
    alertController.didMoveToParentViewController(self)
    alertController.view.frame.origin.x = self.view.frame.midX
    alertController.view.frame.origin.y = self.view.frame.midY
   //alertController.popoverPresentationController?.sourceView = self.view*/


    let OkAction = UIAlertAction(title: NSLocalizedString("yesh", comment: ""), style: .Destructive) { (action) in

    }
    alertController.addAction(OkAction)

    let cancelAction = UIAlertAction(title: NSLocalizedString("notNow", comment: ""), style: .Destructive) { (action) in
        //println(action)
        self.tutorial = 1
        self.presentedViewController?.dismissViewControllerAnimated(true, completion: nil)
    }

    alertController.addAction(cancelAction)

    let neverAction = UIAlertAction(title: NSLocalizedString("never", comment: ""), style: .Cancel) { (action) in
        self.tutorial = 1
    }
    alertController.addAction(neverAction)


    //self.presentViewController(alertController, animated: false) {}

}
LFS

私は解決策を見つけました。どうやら、funcviewDidLoadからUIAlertControllerを呼び出すことはできません。viewDidAppearから関数を呼び出す必要があります。だから私のコードは今

override func viewDidAppear(animated: Bool) {
    if tutorial == 0 {
        displayTutorial(self.view)
    }
}

func displayTutorial(sender:AnyObject) {

    let alertController = UIAlertController(title: NSLocalizedString("tutorialAlert", comment: ""), message: NSLocalizedString("tutorialMsg", comment: ""), preferredStyle: .ActionSheet)


    let OkAction = UIAlertAction(title: NSLocalizedString("yesh", comment: ""), style: .Destructive) { (action) in

    }
    alertController.addAction(OkAction)

    let cancelAction = UIAlertAction(title: NSLocalizedString("notNow", comment: ""), style: .Default) { (action) in
        //println(action)
        self.tutorial = 1
        self.presentedViewController?.dismissViewControllerAnimated(true, completion: nil)
    }

    alertController.addAction(cancelAction)

    let neverAction = UIAlertAction(title: NSLocalizedString("never", comment: ""), style: .Cancel) { (action) in
        self.tutorial = 1
    }
    alertController.addAction(neverAction)

    self.presentViewController(alertController, animated: true, completion: nil)

    if let pop = alertController.popoverPresentationController {
        let v = sender as UIView
        pop.sourceView = view
        pop.sourceRect = v.bounds
    }
}

この投稿のおかげで:警告:ビューがウィンドウ階層にない*に*を提示しようとしています-迅速

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ユーザーがC ++で入力しているときに、ユーザーの入力を確認するにはどうすればよいですか?

分類Dev

アラートにユーザー入力を表示するにはどうすればよいですか?(迅速)

分類Dev

配列を使用してユーザー入力を取得するにはどうすればよいですか

分類Dev

整数をユーザー入力として検証するにはどうすればよいですか?

分類Dev

ユーザーが同じテキストを2回入力しないようにするにはどうすればよいですか?

分類Dev

日付を誤って入力したユーザーに対してループを適切に作成するにはどうすればよいですか?

分類Dev

ユーザー入力を使用してHTMLを作成し、新しいタブに表示するにはどうすればよいですか?

分類Dev

ユーザー入力に応じてiloc()を使用して増分生データを表示するにはどうすればよいですか?

分類Dev

JOptionPaneと配列を使用して、ユーザーによる複数の入力のリストを作成するにはどうすればよいですか?

分類Dev

ユーザー入力に基づく関数を使用してデータフレームを作成するにはどうすればよいですか?

分類Dev

パスワードの入力を求めずにhtdigestを使用してユーザーを作成するにはどうすればよいですか?

分類Dev

ユーザーが文字列ではなく数字を入力していることを確認するにはどうすればよいですか?

分類Dev

Scannerクラスを使用してユーザーの入力を登録するメソッドを作成するにはどうすればよいですか?

分類Dev

ユーザーから入力を取得し、tkinterでPythonコード(sql)として入力を実行するにはどうすればよいですか?

分類Dev

ユーザーの入力に応じてAndroidStudioで動的にレイアウトを作成するにはどうすればよいですか?

分類Dev

ブラウザを閉じた後でもjwtを使用しているユーザーを覚えるにはどうすればよいですか?

分類Dev

Puppeteerでユーザー入力を一時停止して待つにはどうすればよいですか?

分類Dev

ユーザーが既存の主キーIDを入力しようとしないようにするにはどうすればよいですか?

分類Dev

Watson Assistantでユーザー入力に1つの単語しかないかどうかを検出するにはどうすればよいですか?

分類Dev

UIAlertController内のUITextFieldに入力したデータをSwiftのリセットを通じて永続化するにはどうすればよいですか?

分類Dev

Pythonでユーザー入力のループを作成するにはどうすればよいですか?

分類Dev

ユーザーの入力に応じて「自動」マトリックスを作成するにはどうすればよいですか?

分類Dev

ユーザーが入力した名前を確認するにはどうすればよいですか?

分類Dev

ユーザーが入力した文字列をTryParse()するにはどうすればよいですか?

分類Dev

ユーザーが入力した文字列を無視するにはどうすればよいですか?

分類Dev

Pythonを使用してユーザーから正確な数の入力を取得するにはどうすればよいですか?

分類Dev

Pythonを使用してユーザーから正確な数の入力を取得するにはどうすればよいですか?

分類Dev

SWIFTでアクションなしでUIAlertControllerを閉じるにはどうすればよいですか?

分類Dev

RxJSを使用して「ユーザーが入力しています」インジケーターを表示するにはどうすればよいですか?

Related 関連記事

  1. 1

    ユーザーがC ++で入力しているときに、ユーザーの入力を確認するにはどうすればよいですか?

  2. 2

    アラートにユーザー入力を表示するにはどうすればよいですか?(迅速)

  3. 3

    配列を使用してユーザー入力を取得するにはどうすればよいですか

  4. 4

    整数をユーザー入力として検証するにはどうすればよいですか?

  5. 5

    ユーザーが同じテキストを2回入力しないようにするにはどうすればよいですか?

  6. 6

    日付を誤って入力したユーザーに対してループを適切に作成するにはどうすればよいですか?

  7. 7

    ユーザー入力を使用してHTMLを作成し、新しいタブに表示するにはどうすればよいですか?

  8. 8

    ユーザー入力に応じてiloc()を使用して増分生データを表示するにはどうすればよいですか?

  9. 9

    JOptionPaneと配列を使用して、ユーザーによる複数の入力のリストを作成するにはどうすればよいですか?

  10. 10

    ユーザー入力に基づく関数を使用してデータフレームを作成するにはどうすればよいですか?

  11. 11

    パスワードの入力を求めずにhtdigestを使用してユーザーを作成するにはどうすればよいですか?

  12. 12

    ユーザーが文字列ではなく数字を入力していることを確認するにはどうすればよいですか?

  13. 13

    Scannerクラスを使用してユーザーの入力を登録するメソッドを作成するにはどうすればよいですか?

  14. 14

    ユーザーから入力を取得し、tkinterでPythonコード(sql)として入力を実行するにはどうすればよいですか?

  15. 15

    ユーザーの入力に応じてAndroidStudioで動的にレイアウトを作成するにはどうすればよいですか?

  16. 16

    ブラウザを閉じた後でもjwtを使用しているユーザーを覚えるにはどうすればよいですか?

  17. 17

    Puppeteerでユーザー入力を一時停止して待つにはどうすればよいですか?

  18. 18

    ユーザーが既存の主キーIDを入力しようとしないようにするにはどうすればよいですか?

  19. 19

    Watson Assistantでユーザー入力に1つの単語しかないかどうかを検出するにはどうすればよいですか?

  20. 20

    UIAlertController内のUITextFieldに入力したデータをSwiftのリセットを通じて永続化するにはどうすればよいですか?

  21. 21

    Pythonでユーザー入力のループを作成するにはどうすればよいですか?

  22. 22

    ユーザーの入力に応じて「自動」マトリックスを作成するにはどうすればよいですか?

  23. 23

    ユーザーが入力した名前を確認するにはどうすればよいですか?

  24. 24

    ユーザーが入力した文字列をTryParse()するにはどうすればよいですか?

  25. 25

    ユーザーが入力した文字列を無視するにはどうすればよいですか?

  26. 26

    Pythonを使用してユーザーから正確な数の入力を取得するにはどうすればよいですか?

  27. 27

    Pythonを使用してユーザーから正確な数の入力を取得するにはどうすればよいですか?

  28. 28

    SWIFTでアクションなしでUIAlertControllerを閉じるにはどうすればよいですか?

  29. 29

    RxJSを使用して「ユーザーが入力しています」インジケーターを表示するにはどうすればよいですか?

ホットタグ

アーカイブ