2016-03-29 9 views
0

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.

+0

Was passiert, wenn Sie den Rahmen der Popover-Ansicht einfach auf die Farm der Containeransicht setzen? – rocky

+0

@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

Antwort

0

Ich konnte es beheben, indem Sie den Rahmen explizit festlegen, Einschränkungen festlegen, damit die Containeransicht der Größe des Kindes entsprechen.

+2

Könnten Sie eine detaillierte Antwort geben, was genau Sie geändert haben? – eeschimosu

+0

Ändern Sie die Größe der Unteransicht von PopoverViewController, die Größe wird automatisch angepasst. –