前提・実現したいこと
ゲームを作成しています。
バッグ画面を開いた時にもしアイテムを持っていなかったら、アイテムを持っていません。と、アラートが出るようにしたいです。
該当のソースコード
swift
1func noItemAlert (){ 2 print("アラート表示") 3 // アラートを作成 4 let alert = UIAlertController( 5 title: "TA・SU・KE", 6 message: "バッグにアイテムがありません。\nこの画面を閉じます", 7 preferredStyle: .alert) 8 9 // アラートにボタンをつける 10 alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) 11 12 // アラート表示 13 self.present(alert, animated: true, completion: nil) 14 }
Printにはアラート表示とちゃんと表示されます...
できれば
アラートのOKボタンを押したときに実行されるプログラムをどこに書けばいいのかも教えて欲しいです.
よろしくお願いしますm(_ _)m
> バッグ画面を開いた時
今はどこに書いて試したのですか?
どこに書けば良いのかが知りたいのであれば、ご自身でどのようにしたのかもご提示されるとよろしいかと。
technocorecrissさんが回答されていますが、私の環境でもnoItemAlert()自体は動きました。
表示されない現象が出たあと、右下のコンソール領域に出力されているはずのエラーメッセージも示していただけるとより問題を特定しやすいです。
もしかしたらですけど、この画面にはTableViewを使っています。
その下にアラートが行ってしまって表示されないのかもしれません...
アラートを上に表示する方法を知っていたらご教授していただけると幸いです。m(_ _)m
アラート表示状態で、XcodeのDebug View Hierarchyを使うとどのように表示されているかを確認できます。以下のページに使い方の説明があるのでやってみてはどうでしょうか。
https://qiita.com/akatsuki174/items/45d4bd7cb150defbf116
前にも記載していますが、これを呼び出すところも提示すれば良いのですが。
適切な場所で呼び出せば、回答されている通り表示されるのは確認できているので。
if deathblowNameArrayUD.array(forKey: "DeathBlowArray")?.isEmpty == true {
debugPrint("空")
noItemAlert()
}else {
debugPrint("入っている")
}
アイテムの名前を入れている配列に何も入っていなかったら「noItemAlert」を呼び出すプログラムにしています..
そのコードはどのように呼び出しているのですか?どのようなタイミングで呼び出されることを期待してそこに記載しているのでしょうか。
viewDidAppearというものを使ってみたら解決しました。
長くお付き合いありがとうございました!
回答2件
あなたの回答
tips
プレビュー