2009-11-26 42 views
2

我想讓我的視圖控制器檢測由我的應用程序自動顯示的UINavigationBar中的滑動,但它拒絕檢測滑動。有什麼辦法可以做到嗎?檢測在UINavigationBar中滑動

+0

你是如何檢測刷卡? – 2009-11-26 08:07:45

+0

使用touchFinished方法,UINavigationBar由UINavigationController自動引入。 – Matt 2009-12-25 00:02:33

回答

9

假如你希望當您創建導航控制器檢測揮筆給留在你的導航欄,你可以做這樣的事情

UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewSwipedLeft:)]; 
    [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft]; 
    [self.navigationController.navigationBar addGestureRecognizer:swipeLeft]; 

,然後創建一個方法,如下面的一個處理:

-(void) didSwipedLeft: (UISwipeGestureRecognizer *) gesture { 

    if (gesture.state != UIGestureRecognizerStateEnded) { 
     return; 
    } 

    //do something  
} 

OBS:當您導航控制器是一個類,將仍然活着,爲你的應用程序生命週期的幾個步驟,要注意的是,添加手勢識別是很重要的只有當你創建導航控制器時(這意味着只添加一次),這樣你就不會將手勢識別器彼此堆疊在一起,這不僅會導致內存泄漏,還可能使你的方法被調用更多比一次。