2017-01-18 1 views
0

Я создал кнопку навигационного элемента в контроллере панели вкладок.(<UIPopoverPresentationController: 0x7fdb10687050>) должен иметь не-nil sourceView или barButtonItem, установленные перед представлением. '

class TabBarContoller: UITabBarController,UIPopoverPresentationControllerDelegate { 
... 
     let languageBtn = UIBarButtonItem(title: "EN", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(Language)) 
     // navigationItem.rightBarButtonItem = [rightButton , languageBtn] 
     navigationItem.setRightBarButtonItems([rightButton,languageBtn], animated: true) 

я хочу, чтобы запустить эту функцию, когда эта кнопка его проверки, которая будет поповер контроллер вида:

func showLanguagePopOver(base: UIView) { 
     let popOverContent = self.storyboard?.instantiateViewControllerWithIdentifier("Languages")as! Languages 
     popOverContent.preferredContentSize = CGSizeMake(150, 150) 
     let nav = UINavigationController(rootViewController: popOverContent) 
     nav.modalPresentationStyle = .Popover 
     let popOver = nav.popoverPresentationController 
     popOver?.delegate = self 
     popOver?.sourceView = base 
     popOver?.sourceRect = base.bounds 
     popOver?.sourceRect = CGRect(x: 0, y: 0, width: 100, height: 25) 
     self.presentViewController(nav, animated: true, completion: nil) 
    } 

я попытался назвать это так:

func Language() 
{ 
    showLanguagePopOver(UIView) 

    } 

это Бесполезный Работа, любая помощь?

ответ

1

Изменение ниже линии:

showLanguagePopOver(UIView) 

с этой линии:

showLanguagePopOver(self.view) 
+0

спасибо много он работал –

Смежные вопросы