J'aimerais créer une barre de navigation au-dessus de mon application. J'ai créé un contrôleur de navigation -> Contrôleur de barre d'onglets -> Contrôleur de navigation -> Contrôleur de table
Je l'ai aussi essayé avec ce code dans le viewDidLoad () de mon contrôleur:
self.navigationController.navigationBar.topItem.title = "some title"
self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true)
self.navigationItem.title = "YourTitle"
Non, ça a marché - qu'est-ce que je fais mal? : /
Vous pouvez essayer quelque chose comme ça:
self.title = "Your Title"
var homeButton : UIBarButtonItem = UIBarButtonItem(title: "LeftButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")
var logButton : UIBarButtonItem = UIBarButtonItem(title: "RigthButtonTitle", style: UIBarButtonItemStyle.Plain, target: self, action: "")
self.navigationItem.leftBarButtonItem = homeButton
self.navigationItem.rightBarButtonItem = logButton
Je crois que vous recherchez un titleView
.
Essayer:
var navBarTitleView = UIView(frame: CGRectMake(0.0, 0.0, self.view.frame.width, 44.0))
navBarTitleView.backgroundColor = UIColor.brownColor()
self.navigationItem.titleView = navBarTitleView
Je suis presque sûr que vous pouvez simplement définir le titre de votre contrôleur de table, dans son viewDidLoad, qui est le titre affiché dans votre barre de navigation.
cette réponse explique une question légèrement différente, mais le concept est le même:
si vous souhaitez configurer votre "UINavigationBar" selon votre souhait, veuillez suivre ceci en toute sécurité, il est si simple en langage rapide que nous vous aiderons beaucoup.
ÉTAPE 1:-
Créez une classe de catégorie dans Swift, allez simplement sur "Nouveau fichier" et ajoutez "Classe Swift simple" et donnez-lui le nom "MyCustomNavBarCategory.Swift"
ÉTAPE 2:-
Juste "Nettoyer la classe (supprimer tout le code de cette classe)" et "Coller mon code ci-dessous" : -
// la classe commencera au-dessous de la ligne commence la copie à partir d'ici
let SCREEN_HEIGHT = UIScreen.mainScreen (). bounds.size.height
importer UIKit
extension UINavigationBar {
//First increase navigation bar height .
override public func sizeThatFits(size: CGSize) -> CGSize {
NSLog("%f", SCREEN_HEIGHT*0.06);
let newSize:CGSize = CGSizeMake(self.frame.size.width, SCREEN_HEIGHT*0.10)
return newSize;
}
//then set layOut of your Custom Nav for several objects like titleview,buttons and all
public override func layoutSubviews() {
for var view in self.subviews
{
NSLog("view %@", view);
let str :String = view.classForCoder.description();
if(str == "UILabel")
{
//play with title view frame
var f = view.frame;
f.Origin.y = self.frame.size.height/2 - view.bounds.size.height/2 ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
else if(str == "UIButton")
{
//play with buttons of navigation bar view frame
var f = view.frame;
f.Origin.y = (self.frame.size.height/2) - (view.bounds.size.height/2) ;
view.frame = f;
view.backgroundColor = UIColor.greenColor();
}
}
}
}
// la classe se terminera au-dessus arrêter le code de copie sur la ligne ci-dessus et juste après cela dans votre "MyCustomNavBarCategory.Swift" . c'est ça profiter;).
ÉTAPE 3: - /. Maintenant, vous pouvez définir n’importe quel cadre pour n’importe quel objet de UINavigationBar de cette classe "C’est une catégorie très puissante de UINavigationBar si vous voulez l’appliquer avec soin" .