Элементы на панели навигации будут автоматически добавлены в passthroughViews popoverViewController.Это происходит после того, как появляется поповер.После этого вам необходимо очистить passthroughViews.
А для iOS 8 мы можем получить popoverController из UIViewController.popoverPresentationController, до этого мы можем получить popoverController из UIStoryboardPopoverSegue.
В вашем контроллере представления контроллер представления представлен как popover.
var popoverController: UIPopoverController?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Before IOS8, we need to get reference of popOverController from UIStoryboardPopoverSegue
if (!self.respondsToSelector(Selector("popoverPresentationController"))) {
if let popoverController = (segue as? UIStoryboardPopoverSegue)?.popoverController {
let menuViewController = segue.destinationViewController as AIMSMenuTableViewController
menuViewController.popoverController = popoverController
}
}
}
В вашем представлении контроллер, который представлен как popover.
var popoverController: UIPopoverController?
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
// Set passthroughViews to nil make tapping other navigation bar button
// dismiss presenting popoverController
if (self.respondsToSelector(Selector("popoverPresentationController"))) {
self.popoverPresentationController?.passthroughViews = nil
} else {
// For iOS8-pre version, we need to pass popoverController reference from segue
self.popoverController?.passthroughViews = nil
}
}