2015-12-01 13 views
7

ポップオーバーを作成しようとしていますが、ビューコントローラを表示するとき、背景は常に黒で、サイズはフルスクリーンです。PopOverをiOS9に表示する方法

私が間違っているかを把握するように見えるし、ここで私はUIBarButtonItemをクリックするたびに、私は、それがフルスクリーンで表示を

@IBAction func distancePopOver(sender : UIBarButtonItem){ 

    //a UIViewController that I created in the storyboard 
    let controller = storyboard!.instantiateViewControllerWithIdentifier("distancePopOver") 
    controller.modalPresentationStyle= UIModalPresentationSTyle.PopOver 
    controller.preferredContentSize = CGSizeMake(200,30) 
    self.presentViewController(controller, animated: true, completion: nil) 

    //Configure the Popover presentation controller 
    let popController = (controller.popoverPresentationController)! 
    popController.permittedArrowDirections = UIPopoverArrowDirection.Down 
    popController.barButtonItem = sender 
    popController.delegate = self 
    } 

を提示してきたが、それはすべきではないコードであることはできません私が5行目で指定したサイズ?

答えて

1

今ではポピュラーはかなり厄介です。まず、提示する前にpopoverPresentationControllerを設定したいと思っています。

第2に、矢印の方向が矢印の方向を指し、コンテンツがUIBarButtonItemのどこではないかを確認します。だから、内部のUIToolbar(そして画面の最下部にある)なら、.Downが必要です。そうでなければ、ナビゲーションバー(最上部付近)を.Upにします。

@IBAction func distancePopOver(sender : UIBarButtonItem){ 

    //Configure the Popover presentation controller 
    let popController = (controller.popoverPresentationController)! 
    popController.permittedArrowDirections = .Down // .Up 
    popController.barButtonItem = sender 
    popController.delegate = self 

    //a UIViewController that I created in the storyboard 
    let controller = storyboard!.instantiateViewControllerWithIdentifier("distancePopOver") 
    controller.modalPresentationStyle = .Popover 
    controller.preferredContentSize = CGSizeMake(200,30) 

    presentViewController(controller, animated: true, completion: nil) 
} 

今、あなたはここまでだと、まだ、働いていない場合は、そのコンパクトなサイズクラスのポップオーバーのデフォルトの動作が画面を埋めるためにあるので。あなたが既にポップオーバーのデリゲートになるようにView Controllerを設定しているので、このデリゲート関数を実装する必要があります:adaptivePresentationStyleForPresentationController(_:traitCollection:)とプレゼンテーションスタイルの場合は.Noneを返します。これにより、iPhone上でリアルなポップオーバーを表示することさえできます。私のブログ記事:iPhone Popoverをご覧ください。

+1

adaptivePresentationStyleForPresentationController(_:traitCollection :)の最後のビットは私にとってそれを行いました。ありがとう –

+0

iPadでうまくいきましたが、iPhoneではうまくいきませんでした。 – Satyam

関連する問題