言語・補足
言語:Swift5
Xcode ver:11.1
実現したいこと
アプリ内のWebViewでバックするページが無い際、TabBarにあるUIBarButtonItemの戻るを消したいと思っています。
コード
Swift
1 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 2 3 if(webView.canGoBack){ 4 //戻れる時にUIBarButtonItemのtitleプロパティに"戻る"を入れる 5 backButton.title = "戻る" 6 }else{ 7 //戻れない時にUIBarButtonItemのtitleプロパティに""を入れる 8 backButton.title = " " 9 } 10 //インジケーターを止める 11 activityIndicatorView.stopAnimating() 12 }
起きていること
ユーティリティエリアで設定したtitle「戻る」がどのページでも反映されてしまっている。
最後に
そもそも上記で挙げたことをしたい場合、「didFinish navigation」でするのが正しいのでしょうか?
他に適切なイベントがあれば、教えていただけると助かります。
エンジニア歴2ヶ月の初心者なので、わかりづらい伝え方になってしまっているかもしれません。
何卒よろしくお願いします。
実装としては間違っていないと思いますが、そもそもwebViewは呼び出されていますでしょうか。
はい。
viewdidloadで呼び出しています。
実機でビルドした際、webViewの生成とその先のページ遷移も確認できているので、
自分としては、その辺りは問題ないんじゃないかと考えていました。
次のような感じでDelegateは設定していますでしょうか。
webView.navigationDelegate = self
していませんでした。
設定したところ、buttonのタイトルが消えました。
ありがとうございます!
delegateの設定忘れはよくあるパターンです(私もよく忘れます)。
では、自己解決ということでこの質問を閉じていただいてもよろしいでしょうか。
承知しました。
ありがとうございます!
回答1件
あなたの回答
tips
プレビュー