で奇妙な問題に直面していUIPopoverController
ます。ポップオーバーの作成中に、パススルー ビュー プロパティを設定しました。外側のどこかをタップすると閉じるようにポップオーバーしたかったのです。
[self.popover presentPopoverFromBarButtonItem:barButtonItemView
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
// comment the below line if only toggle feature is expected to close the popover
[self.popover setPassthroughViews:self.tileMenu.tileMenuButtonsArray];
デバイスの向きが変わるまで問題なく動作します。向きの変更後、外側をタップしても効果がありません。メソッド- popoverControllerShouldDismissPopover
- は、方向の変更後に呼び出されることはありません。ボタンをもう一度タップすると、正常に機能し始めます。つまり、ポップオーバーを再起動し、外側をタップするとポップオーバーを閉じます。
私は現在IOS 7に取り組んでいます。
以前にこの問題に直面した人はいますか? どんな助けでも大歓迎です。
更新: ポップオーバーを閉じて再度開いてみました。それもうまくいきませんでした:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration
{
if ( [self.popover isPopoverVisible] )
{
[self.popover dismissPopoverAnimated:NO];
self.reopenPopover = YES;
}
}
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
if (self.reopenPopover) {
[self presentPopover:self.selectedTileMenuBarButtonItem];
}
self.reopenPopover = NO;
}
-(void) presentPopover:(UIBarButtonItem *) barButtonItemView {
self.selectedTileMenuBarButtonItem = barButtonItemView;
[self.popover presentPopoverFromBarButtonItem:barButtonItemView
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
// comment the below line if only toggle feature is expected to close the popover
[self.popover setPassthroughViews:self.tileMenu.tileMenuButtonsArray];
}