2013-11-24 55 views
1

我目前在iOS 7應用程序中使用ECSlidingViewController 2。我已經成功實現了ECSlidingViewController 2,但是當我滑動topViewController時,我遇到了一個小問題。 當我第一次運行項目時,將topViewController從左向右滑動以顯示菜單控制器可以正常工作。但奇怪的是,當我點擊「第一屏幕」,「第二屏幕」或「主屏幕」等任何菜單項時,它會永久停止此滑動行爲。滑動topViewController在菜單視圖上點擊後左右停止

我上傳了我在github上的工作。 https://github.com/rajuptb/ECSlidingViewControllerTest

我在應用程序委託中包含以下內容。 [navigationController.view addGestureRecognizer:self.slidingViewController.panGesture];

爲了做到這一點,我在ECSlidingViewController的示例中遵循了LayoutDemo。由於某些特定的項目需求,我想從應用程序代理啓動topViewController下的LeftViewController。

任何幫助,建議,甚至猜測什麼可能是問題是非常感謝。

+0

剛下載了git項目,我在模擬器和設備上測試了你的代碼。它在這些部分的所有單元格上滑動得很好。你面臨的問題是什麼?也許你需要重置你的模擬器並重啓項目。我看不到任何問題。 –

回答

0

您添加到應用程序委託中的導航控制器的panGesture將保留在該導航控制器的視圖中。您使用該導航控制器初始化滑動視圖控制器,以便平移手勢在該導航控制器是頂部視圖控制器時起作用。一旦你改變了頂部視圖控制器,平移手勢就消失了(因爲它被附加到該導航控制器的視圖)。

您需要將panGesture添加回另一個視圖(最有可能位於新的頂部視圖控制器視圖或其子視圖之一)。一種方法是在viewDidLoad中爲您的每個視圖控制器創建滑動視圖控制器的頂視圖控制器。

在你的第一,第二和家庭視圖控制器:

#import "UIViewController+ECSlidingViewController.h" 

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

這使得平移的視圖。如果您想要在整個導航控制器視圖上啓用平移,那麼您可以將其添加到:[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture]

ECSlidingViewController不假定您希望用戶如何與它進行交互。您需要決定它在應用上下文中的工作方式。

+0

感謝邁克爾的快速和正確的迴應。只是按照您的建議更新了源代碼並且工作正常。如果有人需要代碼,可以隨意下載。其更新。 :) –

相關問題