2016-07-01 12 views
1

Im Blick auf ein Problem, ich habe eine viewController, die sowohl navigationController und tabBarController hat. Immer wenn im Code ich versuche, eine rechte oder linke barButtonItem hinzuzufügen oder sogar einen Titel der navigationBar hinzuzufügen, geschieht nichts. Liegt es an der Tab-Leiste? oder was das Problem sein könnteBar Schaltfläche Element wird nicht hinzugefügt

in viewDidLoad

let addButton = UIBarButtonItem(title: "Add", style: .Plain, target: self, action: #selector(ProfileVC.addNewService)) 
navigationItem.rightBarButtonItem = addButton 

hier, wie die View-Controller Blick in das Storyboard

enter image description here

+0

versuchen Sie, eine Schaltfläche in der Navigationsleiste hinzuzufügen? Wenn ja, sollte self.navigationbar beim Hinzufügen der Schaltfläche vorhanden sein. –

Antwort

1

Versuchen:

parentViewController?.navigationItem.rightBarButtonItem = addButton 

seit Ihrem TabBarController in Navigation wie folgt eingebettet:

UINavigationController -> UITabBarController -> YourViewController

+0

Danke, es hat perfekt funktioniert. Akzeptierte Antwort! –

0

Versuchen Sie, diese

Import UIKit

Klasse Viewcontroller: UIViewController {

override func viewDidLoad() { 
    super.viewDidLoad() 

    let addButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: self, action: "buttonMethod") 
    navigationItem.leftBarButtonItem = addButton 

    navigationController?.navigationBar.barTintColor = UIColor.greenColor() 

} 

func buttonMethod() { 
    print("Perform action") 
} 

}

sind mit dieser Gewohnheit bar Taste Versuchen

Klasse Viewcontroller: UIViewController {

override func viewDidLoad() { 
    super.viewDidLoad() 

    let btnName = UIButton() 
    btnName.setImage(UIImage(named: "imagename"), forState: .Normal) 
    btnName.frame = CGRectMake(0, 0, 30, 30) 
    btnName.addTarget(self, action: Selector("action"), forControlEvents: .TouchUpInside) 

    //.... Set Right/Left Bar Button item 
    let rightBarButton = UIBarButtonItem() 
    rightBarButton.customView = btnName 
    self.navigationItem.rightBarButtonItem = rightBarButton 

} 

func action() { 
    print("Perform action") 
} 

}

0

RootViewController Ihre Navigation der ist TabBarController so müssen Sie maßgeschneiderte UITabBarController Klasse erstellen dann schieben Sie Ihr Quellcode in viewDidLoad Funktion des angepassten UITabbarControllers.

Baum Viewcontroller wird: Navigation -> UITabbarController-> Viewcontroller

Oder Sie sollen Navigation gesetzt für jeden Viewcontroller in TabBarController

Baum Viewcontroller wird: UITabbarController-> NavigationController-> Viewcontroller

Verwandte Themen