0

非常に独特なバグ:

次のようなUIPopoverControllerをポップアウトするBarButtonItemがあります。

-(void) addNewProjectButtonClicked:(id)sender
{
    //Some Preparations....

    [popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

予想どおり、ポップオーバーコントローラーが適切な場所に表示されます。

さて、私がポップオーバーの外のどこかに触れているとき、それは却下されることを期待しています
唯一の問題は、古いものを閉じて新しいものを表示するのではなく、もう一度BarButton(ポップオーバーをポップしたもの)を押すと、既存のポップオーバーの上に別のポップオーバーが表示されることです。つまり、何度も押すと、他の場所を複数回クリックするだけで閉じることができるポップオーバーの山が表示されます。

ここでシングルトンデザインパターンの缶を使用してこれを解決できることは知っていますが、それを処理するためのより簡単で組み込みの方法はありませんか?

ありがとう!

4

1 に答える 1

2

数か月前に同じ問題に遭遇しました。何かをタップすると自動的に消えると思っていましたが、そうではありませんでした。

私がこれに対処している方法は、古いポップオーバーへの参照を保持し、UIBarButtonItemタップされたときにそれを閉じることです。

-(void) addNewProjectButtonClicked:(id)sender
{
    [popover dismissPopoverAnimated:YES];
    // Set it up again.
    [popover ...];
}

プロパティを使用して簡単にメモリを管理したり、自分で処理したりできます。

于 2011-01-04T12:15:46.537 に答える