1

現在、iOS 7 アプリで ECSlidingViewController 2 を使用しています。ECSlidingViewController 2 を正常に実装しましたが、topViewController をスライドさせているときに小さな問題が発生しています。プロジェクトを初めて実行するとき、topViewController を左から右にスライドさせて、メニュー コントローラを表示すると正常に動作します。しかし、奇妙なことに、「最初の画面」、「2 番目の画面」、「ホーム画面」などのメニュー項目をクリックすると、このスライド動作が完全に停止します。

作品を github にアップロードしました。 https://github.com/rajuptb/ECSlidingViewControllerTest

アプリデリゲートに以下を含めました。[navigationController.view addGestureRecognizer:self.slidingViewController.panGesture];

これを行うには、ECSlidingViewController の例で LayoutDemo に従いました。特定のプロジェクト要件があるため、アプリ デリゲートから topViewController と underLeftViewController を開始したいと考えています。

何が問題なのかについての助け、提案、または推測さえも大歓迎です。

4

1 に答える 1

0

アプリ デリゲートでナビゲーション コントローラーに追加したものは、そのpanGestureナビゲーション コントローラーのビューにとどまります。そのナビゲーション コントローラーでスライディング ビュー コントローラーを初期化すると、そのナビゲーション コントローラーがトップ ビュー コントローラーである間、パン ジェスチャが機能します。トップ ビュー コントローラーを変更すると、パン ジェスチャはなくなります (ナビゲーション コントローラーのビューにアタッチされているため)。

バックを別のビューに追加する必要がありpanGestureます (ほとんどの場合、新しいトップ ビュー コントローラーのビューまたはそのサブビューの 1 つに)。これを行う 1 つの方法は、viewDidLoadスライディング ビュー コントローラーのトップ ビュー コントローラーになる各ビュー コントローラーを使用することです。

First、Second、および Home のビュー コントローラーで次の操作を行います。

#import "UIViewController+ECSlidingViewController.h"

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view addGestureRecognizer:self.slidingViewController.panGesture];
}

これにより、ビューのパンが有効になります。ナビゲーション コントローラー ビュー全体でパンを有効にする場合は、そこに追加します[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture]

ECSlidingViewControllerユーザーにどのように操作してもらいたいかについて、想定していません。アプリのコンテキスト内でどのように機能するかは、あなた次第です。

于 2013-11-24T08:02:44.740 に答える