Я создаю кнопку на UITabBarCOntroller и пытаюсь вызвать модальный просмотр всех экранов в приложении. Я пытаюсь использовать WYPopoverController в качестве решения Мой класс UITabBarController являетсяWYPopoverController на UITabBarController падает
class PlanetTabBarController: UITabBarController, WYPopoverControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.tintColor = kTintColor
var items = self.tabBar.items as! [UITabBarItem]
let centredTabBar:UITabBarItem = items[2]
self.tabBar.layer.borderWidth = 0.50
centredTabBar.image = UIImage()
self.tabBar.layer.borderColor = UIColor.clearColor().CGColor
self.tabBar.layer.borderWidth = 0
self.tabBar.shadowImage = UIImage()
// self.tabBar.backgroundImage = ktabBarImage
self.tabBar.backgroundImage?.imageWithAlignmentRectInsets
print(UIDevice.currentDevice().modelName)
if(UIDevice.currentDevice().modelName != "iPhone 6" && UIDevice.currentDevice().modelName != "iPhone 6 Plus"){
self.tabBar.backgroundImage = ktabBarImage
}
if(UIDevice.currentDevice().modelName == "iPad 2"){
self.tabBar.backgroundImage = ktabBarImage
}
if let font = UIFont(name: "Avenir-Black", size: 10) {
let appearance = UITabBarItem.appearance()
let attributes = [NSFontAttributeName:font]
appearance.setTitleTextAttributes(attributes, forState: UIControlState.Normal)
}
let buttonImage:UIImage = UIImage(named: "tab_planet")!
var button: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height)
button.setBackgroundImage(buttonImage, forState: UIControlState.Normal)
var heightDifference:CGFloat = buttonImage.size.height - self.tabBar.frame.size.height
if (heightDifference < 0){
button.center = self.tabBar.center
button.center.y = self.tabBar.center.y - 5
}else{
var center:CGPoint = self.tabBar.center
center.y = center.y - heightDifference/2.0 - 5
button.center = center
}
button.addTarget(self, action: "addPlanet:", forControlEvents: .TouchUpInside)
self.view.addSubview(button)
}
func addPlanet(sender: UIButton!) {
self.showAddPlan()
}
func showAddPlan(){
var contentViewController = UIStoryboard(name: "AddPlan", bundle: nil).instantiateViewControllerWithIdentifier("AddPlanController") as? AddPlanController
var popoverController = WYPopoverController(contentViewController: contentViewController)
popoverController.delegate = self
popoverController.presentPopoverFromRect(CGRectZero, inView: nil, permittedArrowDirections: WYPopoverArrowDirection.None, animated: false) {() -> Void in
print ("done")
}
}
func popoverControllerShouldDismissPopover(popoverController: WYPopoverController!) -> Bool {
return false
}
}
Но когда я пытаюсь вызвать мой AddPlanController разбился с ошибкой
** Экземпляр 0x7fe4a48849d0 класса планеты. AddPlanController был освобожден, а наблюдатели с ключевыми значениями все еще были зарегистрированы с ним. Информация о текущем наблюдения: ( Контекст: 0x0, свойство: 0x7fe4a4915e00> **
Пожалуйста, дайте мне совет, как назвать что-то вроде модальный контроллер представления от кнопки на UITabBar, что будет над всеми экранами, с тенью BG. = (