2017-02-14 9 views
-1

TableController内のボタンからViewController(NavigationControllerに埋め込まれています)を表示しようとしています。提示されたViewControllerは、TableViewControllerの高さの半分でなければなりません。私は以下のコードで試してみましたが、うまくいかないようです(Swift 3)。誰かが親切に助けることができますか?ありがとう!現在のサイズ変更が適切に表示されない

class AddNewRecipeTableViewController: UITableViewController, UIViewControllerTransitioningDelegate { 
    @IBAction func popUpTest(_ sender: Any) { 
     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let pvc = storyboard.instantiateViewController(withIdentifier: "popUpTest") as! UINavigationController 

     pvc.modalPresentationStyle = UIModalPresentationStyle.custom 
     pvc.transitioningDelegate = self 
     self.present(pvc, animated: true, completion: nil) 
    } 

    func presentationControllerForPresentedViewController(presented: UIViewController, presentingViewController presenting: UIViewController!, sourceViewController source: UIViewController) -> UIPresentationController? { 
     return HalfSizePresentationController(presentedViewController: presented, presenting: presentingViewController) 
    } 
} 

class HalfSizePresentationController : UIPresentationController { 
    override var frameOfPresentedViewInContainerView : CGRect { 
     return CGRect(x: 0, y: 0, width: containerView!.bounds.width, height: containerView!.bounds.height/2) 
    } 
} 

答えて

0

あなたは持っている:スウィフト3で、それはココアが知っている任意の方法に対応していないので、この方法は、呼び出されません

func presentationControllerForPresentedViewController(
    presented: UIViewController, 
    presentingViewController presenting: UIViewController!, 
    sourceViewController source: UIViewController) 
    -> UIPresentationController? { 

を。このように、あなたはおそらくpresentationController(forPresented:presenting:source:)実装するためのもの

(。私はあなたがこのことについて、コンパイラから警告を取得して報告していない驚いています):

func presentationController(
    forPresented presented: UIViewController, 
    presenting: UIViewController?, 
    source: UIViewController) 
    -> UIPresentationController? { 

をしかし、たとえそれが呼び出されません、表示されたビューコントローラのmodalPresentationStyle.customに設定していないためです。

+0

ありがとうございました! – Albert

+0

優秀、報告をいただきありがとうございます。 – matt

関連する問題