2016-05-19 12 views
0

UIPopoverControllerを却下しようとしていますが、正常に動作します。 UIPopoverControllerUILongPressGestureRecognizerアクションから作成されている場合。 動作しません。私はdismissAllPopoversと呼んでいる代議員を持っています。誰にでもアイデアはありますか?おかげUIPopovercontrollerがUILongPressGestureRecognizerから却下しない

handleChangeColorの下
UILongPressGestureRecognizer *longTap = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleChangeColor:)]; 
     longTap.minimumPressDuration = 0.6; 
     [button addGestureRecognizer:longTap]; 

- (void)handleChangeColor:(UILongPressGestureRecognizer *)gesture 
{ 
    ColorPicker *colorPicker = [[ColorPicker alloc] initWithNibName:nil bundle:[NSBundle mainBundle]]; 
    colorPicker.delegate2 = self; 
    colorPicker.navigationItem.title = [Language get:@"Button Color"]; 
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:colorPicker]; 

    self.selectColorPop = [[UIPopoverController alloc] initWithContentViewController:navController]; 
    self.selectColorPop.popoverContentSize = CGSizeMake(300, 390); 
    self.selectColorPop.delegate = self; 
    colorPicker.myPop = self.selectColorPop; 
    [self.selectColorPop presentPopoverFromRect:button.frame inView:scrollView permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES]; 
    [self.selectColorPop setPassthroughViews:nil]; 
} 

- (void) dismissAllPopOvers 
{ 
    if (self.selectColorPop != nil) 
    { 
     //[self.selectColorPop.delegate popoverControllerDidDismissPopover:self.selectColorPop]; 
     [self.selectColorPop dismissPopoverAnimated:YES]; 
     self.selectColorPop = nil; 
    } 
} 
+0

それが何をするんでしょうか? – mattsven

+1

NSLogを 'handleChangeColor:'に配置します。私はそれが長いプレスの閾値を過ぎると、かつプレスが終了したときに一度呼び出されていると信じています。あなたに2つのポップオーバーを与えます。 – beyowulf

+0

ありがとう!あなたは私の一日を救った! – user774150

答えて

0

: 私は

if(UIGestureRecognizerStateBegan == gesture.state) { 
     // Called on start of gesture, do work here 
     [self doSomething]; 
    } 

    if(UIGestureRecognizerStateChanged == gesture.state) { 
     // Do repeated work here (repeats continuously) while finger is down 
    } 

    if(UIGestureRecognizerStateEnded == gesture.state) { 
     // Do end work here when finger is lifted 
    } 
関連する問題