2012-05-05 13 views
1

私のアプリケーションには、UIViewをルートビューコントローラのビューに追加するコードがあります。このビューは半透明であり、アプリケーション全体をカバーするモーダルオーバーレイとして機能します(クリックするとスーパービューからビューを削除するボタンが表示されます)。これはユーザーがメインアプリケーションに戻る方法です。UIPopoverControllerの上にUIViewを配置する方法はありますか?

これまでのところうまくいきましたが、現在はUIPopoverController秒を使用しており、この同じモーダルオーバーレイを使用してメインアプリケーションをブロックしようとしています。問題は、このUIViewが、の後ろにの後ろに表示されていることです。

サブビューをルートコントローラのビューに追加する方法はありますか?表示されたUIPopoverControllerの上に表示されますが、表示されません。

答えて

1

UIPopoverControllerの参照は述べている:

は「ポップオーバーのコンテンツは、ウィンドウの特殊なタイプで、既存のコンテンツの上に階層化されています。」

サブビュー配列のNSLoggingは、それを表示するviewControllerのビュー階層にビューが追加されないことを示しています。私の視点から、あなたがしようとしていることは不可能です。ここで

はしかしアイデアです:

あなたはUIPopOverControllerのcontentViewControllerにあなたのブロックのUIViewを追加し、contentViewControllerにプロパティを設定するためにそれを使用することができます。

次に、あなたが実際にポップオーバーの代理人として、UIPopoverControllerが表示され、このような何かを、あなたのメインのViewControllerを、設定します。私はこれがあなたの現在の状況に役立ちますどのくらいかわからない

- (void) popoverControllerShouldDismissPopover:(UIPopoverController*)popoverController 
{ 
    if(popoverController.contentViewController.yourProperty) 
    { 
     return YES; 
    } 
    return NO; 
} 

が、多分それはあなたを始めさせるでしょう。

+0

私の現在の状況には役立たないが、それは「ねじ込み」です。私は自家製のポップオーバーソリューション(この問題を抱えていないだろう)を実装したいと思っていましたが、これは私たちのビューコントローラのすべてをビューに変換する必要がありました。 – MusiGenesis

+0

申し訳ありません。うまくいけば、あなたはまだ管理することができます! –

関連する問題