2016-03-29 2 views
0

Я делаю NSPopover и делаю это, поэтому я могу перейти между контроллерами представлений с помощью скользящей анимации, используя родительский контроллер представления с моими контроллерами представления в качестве дочерних. Он работает хорошо, за исключением случаев, когда я добавил это, popover автоматически изменил размер моего представления, но теперь popover застрял в фиксированном размере.NSPopover animate contentViewController change and change popover size

Код для создания поповера:

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

Что делать, если вы просто установите рамку представления popover в ферму вида контейнера? – rocky

+0

@rocky К сожалению, это не проблема. Попкорн соответствует размеру вида контейнера, но не учитывает размер дочернего элемента контейнера (задается с ограничениями). Я понял, что проблема связана с ограничениями и исправлена. Теперь я установил размер popover с ограничениями. Спасибо за эту идею. – AppleBetas

ответ

0

Я смог исправить это, вместо того, чтобы явно установить кадр, установив ограничения, чтобы представление контейнера соответствовало размеру ребенка.

+2

Не могли бы вы дать подробный ответ о том, что именно вы изменили? – eeschimosu

+0

Изменить размер подзаголовка PopoverViewController, он будет автоматически изменяться. –