2011-10-27 14 views
1


私はアプリケーションにUIPageViewControllerを使用しています。そのうまく動作します。
私が今したいこと:
ボタンを左上隅に置き、クリックすると、7つのセルを持つテーブルビューを持つView Controller上のポップアップが表示されます。各セルには異なるURLが表示されます。表のセルをクリックすると、WebビューのView Controllerがプッシュされます。iPad - PageViewController - ボタンをクリックすると次のView Controllerが表示されます

問題: 問題は、左上にボタンを置き、ポップオーバーを表示するためにセグを作成したことです。しかしボタンをクリックすると前のページに行き、次のクリックでは最終的に1ページ目に行き、1ページ目にはポップオーバーが表示されます。私はなぜこれが起こっているのか分からなかった。

ポップオーバーを表示した後でも、ウェブサイトで次のビューを表示していません。

どうすればよいですか?

+0

ソリューションの場合:http://stackoverflow.com/questions/7788780/uipageviewcontroller-gesture-recognizers/7788839#7788839 – Satyam

答えて

5

トリックは、UIPageViewControllerのジェスチャ認識プログラムがその領域を引き継ぐことです。特に、タップハンドラ。あなたのボタンは、タップレコグナイザーが前のページに行くことを意味しないときにのみヒットします。

最短ソリューションは、その認識装置

for (UIGestureRecognizer *recognizer in pageViewController.gestureRecognizers) 
    recognizer.delegate = self; 

のデリゲートに自分自身を設定し、コントロールはタッチうまくあなたを並べ替えるべき

- (BOOL)gestureRecognizer:(UIGestureRecognizer *) __unused gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if ([touch.view isKindOfClass:[UIControl class]]) 
     return NO; 
    return YES; 
} 

を取得できるようにそれらを伝えるデリゲートを実装することです。

+0

でフィリップスの回答を参照してください。私は同様の問題を抱えていましたが、全く同じではありませんでした。パンのジェスチャーは認識されたが、タップは認識されたくなかった。そこで、forループのもう1つのチェックを追加して、タップ認識プログラムをチェックし、そのデリゲートを設定しました。だから、スワイプはまだ動作し、私は他の場所でタップを処理します。これで私の問題も解決しました! – Openside

関連する問題