2011-12-06 11 views
0

MapViewを使って、私は注釈の吹き出しをUIPopoverコントローラを押して編集しました。そこにいくつかのテーブルビューを追加しました。 私はpopoverコントローラが消えるようにクリックする必要はありません私がマップ上の別の注釈を選択します。クリックせずにこれらのオブジェクトをバックグラウンドで有効にする可能性はありますか?別のオブジェクトが選択されているときにポップオーバーコントローラを閉じる可能性はありますか?

これを解決するためのアイデアや提案はありますか?

答えて

1

UIPopoverControllerはモーダルと見なされるため、既定の動作は説明したとおりです。まず、その下のビューと対話する前にポップオーバーを閉じる必要があります。ポップオーバー を引き起こす

表示

、外ポップオーバーウィンドウのタップ自動的に却下される:

UIPopoverController Class Reference

あなたは、しかし、そのpassthroughViewsプロパティを割り当てることによって、ポップオーバーの下の景色と対話することができます。ユーザーが 指定されたビューと対話し、ポップオーバーを解除しないようにするには、1つまたは 個のビューをpassthroughViewsプロパティに割り当てることができます。

passthroughViews

ユーザーがポップオーバーが表示 であると相互作用することができるビューのアレイ。ポップオーバーがアクティブなときはポップオーバーが却下されるまで

@property(アトミック、コピー)にNSArray * passthroughViews

ディスカッション

は、他のビューとの相互作用は、 正常に無効になっています。配列 のビューをこのプロパティに割り当てると、ポップオーバーの外側のタップは対応するビューによって処理される になります。

このようにして、Popoverが表示されている間にMapViewとやりとりすることができます。

がプログラムポップオーバーを閉じる:あなたはdismissPopoverAnimated:

dismissPopoverAnimatedを呼び出すことによって、別の注釈を選択したときに

あなたが現在示すポップオーバーを却下することができます。 (BOOL)すぐにそれを却下 にNOポップオーバーの解任をアニメーション化するためにYESを指定して、アニメーションや

パラメータ

アニメーション:

  • (ボイド)dismissPopoverAnimated。あなたはポップオーバーのウィンドウ内のタップに 応じてプログラムでポップオーバーを閉じ、このメソッドを使用することができます

    ディスカッション

    。 popoverの内容の外側にあるタップは自動的にpopoverを閉じます。

+0

素晴らしい!ちょうど私が探していたもの:)非常にありがとう! – P4tR

関連する問題