2011-06-22 7 views
0

他のUIViewControllerに比べて小さいポップオーバーとしてUIViewControllerを表示したいとします。 UIViewControllerはモーダルである必要がありますが、画面全体を表示する必要はありません。 それはちょうど画面の下3分の1に表示されるべきです...UIViewControllerをポップオーバーとして表示

誰かが私にチュートリアルを指すか、これを始めるためのヒントを教えていただけますか?

私は私を助けている、1時間以上グーグルが、何かを見つけることができませんでした:(あなたの助けを

おかげで、 ステファン

答えて

1

を、これは役立つかもしれない。 あなたはヘッダにpopOverControllerを宣言する必要がその財産作るだけでなく、それを合成

if([self.popOverController isPopoverVisible]) 
{ 

    [self.popOverController dismissPopoverAnimated:YES]; 
    return; 
} 

UINavigationController *favNav = [[UINavigationController alloc] 
            initWithRootViewController:favoritesView]; 

//favoritesView is an outlet to the VC Favorites 
//make a nav controller with the root view an outlet to the view you want to present. 


self.popOverController = [[[UIPopoverController alloc] 
          initWithContentViewController:favNav] autorelease]; 

    [popOverController presentPopoverFromBarButtonItem:revealFavorites permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; //revealFavorites is the button i press to show the favorites popover 
favoritesView.view.frame = CGRectMake(10, 10, 310, 320); //set the frame 




if (![self.popOverController isPopoverVisible]) { 
    [favNav release]; 

} 

} 
+0

あなたはUIPopoverConttollerを使用していますが、これはiPad専用です... iPhone用に類似のものを作りたいと思います。しかし、私はいつも同じ位置に見えるようにしたい。 – Urkman

+0

あなたはモーダルビューのような意味ですか? –

2

ちょうどこの質問はまだ未解決であることを発見...あなたはiPhone上で実行されているようなことを達成するための複数のオプションがあります。 状況に応じて、backgroundColorプロパティを[UIColor clearColor]に設定してスクリーンサイズのビューを表示するように構成したNIBからUIViewControllerサブクラスをロードするだけでよいと思います。希望する位置にそのビューのポップオーバーとして表示するサブビューを追加します(たとえば、画面の3分の1の下)。その後、UIModalTransitionStyleCrossDissolveを使用してビューコントローラをモーダルに表示してフェードインしたり、バックグラウンドビューを使用してタッチイベントを傍受してモーダルビューを閉じたりすることもできます。 もう1つの可能性は、ポップオーバーのView Controllerのビューをサブビューとしてメインビューコントローラのビューに追加することです。 UIViewのアニメーションクラスメソッドを使用してトランジションをアニメートできます。

関連する問題