1

で奇妙な問題に直面してい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];
}
4

1 に答える 1