前提・実現したいこと
navigationBarの戻るボタンを押下した際、ダイアログを表示し、画面遷移をキャンセルできるようにしたいと考えています。
まず手始めにダイアログが表示するところまで実装しようとしたのですが、うまくいきませんでした。
ダイアログは表示されず、画面が戻るだけでした。
onTapGoBackBtnにブレークを置いても止まりませんでした。
backButton.actionにメソッドを設定するとうまく行けるかと思ったのですが問題がございますでしょうか。
iphoneアプリの開発に関してあまり知識がないため、何か気になる点がございましたらアドバイスをお願いしたいです。
コード
override func viewDidLoad() { super.viewDidLoad() 〜略〜 self.navigationItem.title = "テスト画面" let backButton = UIBarButtonItem() backButton.title = "戻る" backButton.action = #selector(onTapGoBackBtn) self.navigationController?.navigationBar.topItem?.backBarButtonItem = backButton } @objc func onTapGoBackBtn(_ sender: UIBarButtonItem){ // とりあえずダイアログを表示するまで let dialog = UIAlertController( title: "戻る前の確認", message: "本当に戻っても大丈夫?", preferredStyle: .alert ) dialog.addAction(UIAlertAction(title: "はい", style: .default, handler: nil)) dialog.addAction(UIAlertAction(title: "いいえ", style: .default, handler: nil)) self.present(dialog, animated: true, completion: nil) }
参考サイト
[1] navigationBarの戻るボタンでの画面遷移をキャンセルするには
https://teratail.com/questions/37300
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/02 09:20