0

言語を選択するときに iOS 設定アプリが行うように、UIPopoverPresentationController で viewController を提示したいと考えています。デバイス画面の中央にviewControllerを表示します! ここに画像の説明を入力

しかし、私の結果はそうではありません!

ここに画像の説明を入力

これは私のコードです:

func rightButtonPressed(rightBarButton: UIBarButtonItem) {
    let detailVC = self.storyboard?.instantiateViewControllerWithIdentifier("ExampleViewController") as! ExampleViewController
    detailVC.modalPresentationStyle = .Popover
    let popOverVC = detailVC.popoverPresentationController
    popOverVC?.permittedArrowDirections = .Any
    popOverVC?.barButtonItem = rightBarButton
    popOverVC?.sourceView = self.view
    popOverVC?.delegate = self

    self.presentViewController(detailVC, animated: true, completion: nil)
}

そしてデリゲート:

extension DetailViewController: UIPopoverPresentationControllerDelegate {
    func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
        debugPrint(controller.description)
        return .Popover
    }

    func presentationController(controller: UIPresentationController, viewControllerForAdaptivePresentationStyle style: UIModalPresentationStyle) -> UIViewController? {
        let navController = UINavigationController.init(rootViewController: controller.presentedViewController)
        return navController 
    }
}
4

1 に答える 1

3

プレゼンテーション スタイルをシートに設定してみてください。

detailVC.modalPresentationStyle = UIModalPresentation.FormSheet
于 2016-04-03T16:57:36.177 に答える