Ich mache eine NSPopover, und habe es so gemacht, dass ich zwischen View-Controllern mit einer gleitenden Animation mit einem übergeordneten View-Controller mit meinen View-Controllern als Kinder wechseln kann. Es funktioniert gut, außer, bevor ich das hinzugefügt habe, das Popover automatisch auf die Größe meiner Ansicht angepasst, aber jetzt ist das Popover in einer festen Größe fest.NSPopover animieren contentViewController ändern und Popovergröße ändern
Der Code für die Erstellung der popover:
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
Der Code der View-Controller für den Übergang:
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
})
Gibt es trotzdem, dass ich die popover die Größe automatisch die Größe macht es soll nach dem Übergang sein?
Vielen Dank im Voraus.
Was passiert, wenn Sie den Rahmen der Popover-Ansicht einfach auf die Farm der Containeransicht setzen? – rocky
@rocky Leider ist das nicht das Problem. Das Popover stimmt zwar mit der Größe der Containeransicht überein, berücksichtigt jedoch nicht die Größe der untergeordneten Ansicht der Containeransicht (mit Einschränkungen festgelegt). Ich fand heraus, dass das Problem Constraints war und behob es. Jetzt stelle ich die Größe des Popovers mit Einschränkungen ein. Danke für die Idee. – AppleBetas