2016-03-29 3 views
0

NSPopoverを作成しています。そのため、ビューコントローラを親として持つスライドコントローラをビューコントローラと子の間で移動できます。これはうまく動作しますが、これを追加する前は、ポップオーバーが自動的にビューのサイズにリサイズされますが、現在は固定サイズでスタックオーバーされています。NSPopover animate contentViewControllerポップオーバーサイズを変更して変更する

ポップオーバーを作成するためのコード:

self.homeVC = PopoverViewController(nibName: "PopoverViewController", bundle: nil) 
    self.loginVC = SignInViewController(nibName: "SignInViewController", bundle: nil) 

    self.containerView.view.wantsLayer = true 

    self.containerView.view.frame = self.homeVC!.view.bounds 

    self.containerView.addChildViewController(self.homeVC!) 

    self.containerView.view.addSubview(self.homeVC!.view) 

    popover.contentViewController = self.containerView 

ビューコントローラを移行するためのコード:

self.loginVC!.view.frame = self.homeVC!.view.bounds 
    self.containerView.addChildViewController(self.loginVC!) 

    let transition: NSViewControllerTransitionOptions = .SlideLeft 

    self.containerView.transitionFromViewController(self.homeVC!, toViewController: self.loginVC!, options: transition, completionHandler: { finished in 
     self.homeVC!.view.removeFromSuperview() 
     self.homeVC!.removeFromParentViewController() 
     self.containerView.view.bounds = self.loginVC!.view.bounds 
    }) 

私はポップオーバーが自動的にそれを想定しているサイズにリサイズすることができますことをとにかくあり移行後になる?

ありがとうございます。

+0

ポップオーバービューのフレームをコンテナビューのファームに設定しただけの場合はどうなりますか? – rocky

+0

@rocky悲しいことに、それは問題ではありません。ポップオーバーはコンテナビューのサイズと一致しますが、コンテナビューの子のサイズには注意しません(制約付きで設定)。私は問題が制約であり、それを修正したことを理解しました。今度は、popoverのサイズを制約で設定しました。しかし、アイデアをありがとう。 – AppleBetas

答えて

0

フレームを明示的に設定する代わりに、コンテナビューを子のサイズと一致させるように制約を設定するのではなく、修正できました。

+2

あなたは正確に何を変更したかについて詳細な回答を与えることができますか? – eeschimosu

+0

PopoverViewControllerのサブビューのサイズを変更すると、自動的にサイズが変更されます。 –

関連する問題