J'ai histoire la configuration de la carte avec tous les contrôleurs de vue extension contrôleur de navigation avec classe NavigationController: UINavigationController, UIViewControllerTransitioningDelegate
avec l'installation de la barre de navigation personnalisée pour le contrôleur de navigation avec classe CustomNavigationBar:UINavigationBar
Voici le code pour NavigationControllerAjouter Bouton droit En NavigationController
class NavigationController: UINavigationController, UIViewControllerTransitioningDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
}
Voici la code pour CustomNavigationBar
class CustomNavigationBar: UINavigationBar {
override func awakeFromNib() {
var font = UIFont(name: "Montserrat-Light", size: 17)!
if "ar" == userLocale() {
font = UIFont(name: "DroidSansArabic", size: 17)!
}
let attribtutes = [
NSFontAttributeName: font,
NSForegroundColorAttributeName: UIColor.black,
NSKernAttributeName: 5.0
] as [String : Any]
UINavigationBar.appearance().titleTextAttributes = attribtutes
UINavigationBar.appearance().tintColor = UIColor.black
UINavigationBar.appearance().backgroundColor = UIColor.white
let image = UIImage(named: "back-btn")
UIBarButtonItem.appearance().setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -66), for: .default)
UINavigationBar.appearance().backIndicatorImage = image
}
}
jusqu'ici tout va bien, je veux maintenant ajouter un élément de navigation barre droite avec une vue personnalisée. J'ai essayé d'ajouter le code suivant dans NavigationController::viewDidLoad()
let customView:UIView = UIView()
customView.backgroundColor = .green
customView.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
let item = UIBarButtonItem(customView: customView)
self.navigationItem.setRightBarButton(item, animated: false)
Ce pour une raison quelconque n'apparaît pas dans le menu de navigation. Où vais-je mal?
vous avez besoin d'ajouter 'auto .navigationItem.setRightBarButton (item, animated: false) 'part dans votre contrôleur de vue de base, car chaque viewController possède son propre élément navigationItem, c'est pourquoi votre bouton personnalisé n'est pas affiché –
Comme vous le voyez, j'ai ajouté cela dans NavigationController. Ai-je besoin d'ajouter cela dans tous les autres ViewController? –
Si vous utilisez un baseViewController et ajoutez cette implémentation dans viewDidLoad et que vous créez tous vos autres sous-classes de viewController, vous n'avez qu'à ajouter cette fois –