2017-06-01 1 views
0

Dans mon contrôleur de vue racine, je définis une série d'éléments de bouton de barre avec des images et les affecte au bouton de la barre de droite.Swift comment préserver les éléments du bouton de la barre de navigation après une pression

Lorsque j'appuie sur le contrôleur de vue suivant, ma barre de navigation se réinitialise et n'affiche qu'un bouton de retour.

Une façon de préserver la barre de navigation telle qu'elle a été définie sur le contrôleur de la vue racine pour qu'elle s'affiche sur toutes les pages?

+0

Dans 'prepareForSegue', définissez les éléments de navigation droits du contrôleur de vue de destination. – user1046037

Répondre

-1

Lorsque vous naviguez entre les contrôleurs de vue en utilisant Push, vous obtenez l'animation de navigation par défaut "diapositive horizontale". Essayez "présenter Modalement" ou "présenter comme popover".

0

Comme l'utilisateur1046037 a dit que vous pouvez définir les boutons d'élément pendant que vous préparez le segue.

Exemple:

let helpViewController = HelpViewController(nibName: "HelpViewController", bundle: nil) 
let someLeftButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.refresh, target: self, action: "someAction") 
helpViewController.navigationItem.leftBarButtonItem = someLeftButton 
helpViewController.navigationItem.leftItemsSupplementBackButton = true 
navigationController?.pushViewController(helpViewController, animated: true) 

Celui-ci est de préserver l'élément de bouton gauche et une arrière.

helpViewController.navigationItem.leftItemsSupplementBackButton = true 

Si vous allez utiliser le même bouton dans plusieurs Viewcontrollers vous pouvez créer un BaseViewController mettre en place le bouton et ses comportements.

class AHBaseViewController: UIViewController { 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    configureNavigationBar() 
    // Configure Common status bar if you want too. 
    } 

    func configureNavigationBar() { 
    let someLeftButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.refresh, target: self, action: "someAction") 
    navigationItem.leftBarButtonItem = someLeftButton 
    navigationItem.leftItemsSupplementBackButton = true 
    } 
} 

Ensuite, il suffit posséderai, dans les viewControllers que vous souhaitez afficher le bouton (s).

class HelpViewController: AHBaseViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 
}