2

次のコードを使用して、ビューにポップオーバーを表示しています

imagePopOver = [[UIPopoverController alloc];
initWithContentViewController:self.photoLibraryImageCollection.imagePickerController];
imagePopOver.popoverContentSize = CGSizeMake(185,675);
imagePopOver.delegate = self;   
[imagePopOver presentPopoverFromRect:CGRectMake(600,0, 140, 800) 
                              inView:self.view 
            permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];

正常に動作していますが、myViewの他の部分をクリックすると、この表示されたポップオーバーが表示されなくなります。この問題を回避する方法を教えてもらえますか。私はいつでもそれを却下したくありません。誰かがそれを行う方法を教えてもらえますか?

4

2 に答える 2

7

ポップオーバーのデリゲート(おそらくviewController)で、実装します

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController {
    return NO;
}

デリゲートを設定することを忘れないでください!

于 2011-06-23T14:20:58.760 に答える
1

ポップオーバーの初期化時に以下のコードを書いただけです。

myPopOver.passthroughViews = [NSArray arrayWithObject:self.view];

上記のコードでは popOver が閉じられず、View を操作できます。

テキストボックスの編集時にのみUIpopoverを閉じたくない場合は、単に次のように記述します

myPopOver.passthroughViews = [NSArray arrayWithObject:self.textBox];

于 2011-06-23T21:33:01.830 に答える