2016-06-16 2 views
0

"LoginController"라는 하나의 rootViewController가있는 탐색 컨트롤러가 있습니다. LoginController init에서 rightBarButtonItem을 추가하려고 할 때 작동하지만 탐색 컨트롤러에서 같은 작업이 작동하지 않습니다.탐색 컨트롤러에서 직접 BarButtonItem 설정

이 작동 :

class LoginController: UIViewController { 

    init(){ 
     super.init(nibName: nil, bundle: nil) 

     let button = UIBarButtonItem() 
     button.title = "Test2" 
     navigationItem.rightBarButtonItem = button   
    } 

    ...... 

} 

이 작동하지 않습니다 경우 문제가

class MainNavigationController : UINavigationController{ 

    private var _distributionProvider : DistributionProvider! 

    init(rootViewController: UIViewController, distributionProvider : DistributionProvider) { 
     _distributionProvider = distributionProvider 
     super.init(rootViewController: rootViewController) 

     navigationBar.barTintColor = UIColor(red: 90/255, green: 177/255, blue: 225/255, alpha: 1) 

     let button = UIBarButtonItem() 
     button.title = "Test" 
     navigationItem.rightBarButtonItem = button 


    } 


    .... 
} 

입니까? 감사합니다

+0

왜 당신은 init() 함수를 사용하고 있습니까? – Dershowitz123

+0

나는 viewDidLoad() 등을 시도했다. 그리고 같은 문제 : ( – JaSHin

+1

당신은'UINavigationController'가'viewControllers'에 대한 관리자이고 각 viewcontroller의 navigationItem을 보여줄 필요가 있다는 것을 알아야한다. –

답변

0

당신은이 작업을 수행했습니다 :

class MainNavigationController: UITabBarController, UITabBarControllerDelegate{ 
override func viewDidLoad() { 
     super.viewDidLoad() 
     delegate = self 
    } 

    override func viewWillAppear(animated: Bool) { 
     let item1 = Item1ViewController() 
     let icon1 = UITabBarItem(title: "Title", image: UIImage(named: "someImage.png"), selectedImage: UIImage(named: "otherImage.png")) 
     item1.tabBarItem = icon1 
     let controllers = [item1] //array of the root view controllers displayed by the tab bar interface 
     self.viewControllers = controllers 
    } 

    //Delegate methods 
    func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool { 
     print("Should select viewController: \(viewController.title) ?") 
     return true; 
    } 

} 
관련 문제