• ベストアンサー

iPhoneアプリの開発についてです。

tableviewからwebviewへのセグエによるシーンチェンジで問題が生じます。 tableviewにはuiswipeを実装しているのですがシーンチェンジした後のwebviewでもtableviewのswipeが適用されています。(tableviewでは右スワイプでメニューが出る機能を実装しているのですが、シーンチェンジ後のビューでもそのクラスにコードを記述していないにも関わらずメニューが出てきてしまいます。) 強引な方法で解決可能だと思うのですが、より簡潔なコードで解決できる方法があれば教えてくださると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

uiswipeというのはUISwipeGestureRecognizerのことでしょうか? 実際のコーディング等あまり詳しく示されてないので どこに問題があるのかよくわかりませんが、 GestureRecognizerは、addGestureRecognizerで追加した 対象viewに対してのみ働くものであり、別のviewに影響しません。 単純に考えればwebviewに対してもUISwipeGestureRecognizerを 設定してしまったんじゃないかということになりますが、 そんなことをした覚えがないなら別のviewがwebviewにかぶさって それが反応しているのかもしれません。 スワイプを検出してメニューを出す処理にブレークポイントを 設定し、webviewをスワイプした時に動作を中断させ、その時点の 呼び出し履歴(スタックフレーム)等を確認すれば、なぜスワイプ 動作が呼び出されたのかわかるのではないかと思います。 また、ViewControllerのどこかにブレークポイントを設定して 動作を中断し、そこでデバッガのコマンドで > po [self.view recursiveDescription] といれれば、そのViewController内の全体view構造および 各viewに追加されているGestureRecognizerが見えるので それを調べると何が意図通りでないのかわかると思います。 (参考) http://rochefort.hatenablog.com/entry/2013/11/16/032109

関連するQ&A