Ich möchte eine Navigationsleiste über meiner App erstellen. Ich habe einen Navigationscontroller erstellt -> Registerkarten-Controller -> Navigationscontroller -> Table Controller
Ich habe es auch mit diesem Code im viewDidLoad () meines Controllers versucht:
self.navigationController.navigationBar.topItem.title = "some title"
self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true)
self.navigationItem.title = "YourTitle"
Nichts hat funktioniert - was mache ich falsch? : /
Sie können so etwas versuchen:
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
Ich glaube, Sie suchen eine titleView
.
Versuchen:
var navBarTitleView = UIView(frame: CGRectMake(0.0, 0.0, self.view.frame.width, 44.0))
navBarTitleView.backgroundColor = UIColor.brownColor()
self.navigationItem.titleView = navBarTitleView
Ich bin mir ziemlich sicher, dass Sie den Titel Ihres Table Controllers einfach in viewDidLoad einstellen können. Dies ist der Titel, der in Ihrer Navigationsleiste angezeigt wird.
diese Antwort erklärt eine etwas andere Frage, aber das Konzept ist dasselbe:
wenn Sie Ihre "UINavigationBar" nach Ihren Wünschen einstellen möchten, folgen Sie bitte diesem sehr sicher, es ist so einfach in Swift-Sprache, ich hoffe, es wird Ihnen sehr helfen.
SCHRITT 1:-
Erstellen Sie eine Kategorieklasse in Swift, gehen Sie einfach auf "New file" und fügen Sie "Simple Swift class" hinzu und geben Sie den Namen "MyCustomNavBarCategory.Swift"
SCHRITT 2:-
Einfach "Reinige die Klasse (entferne den gesamten Code aus dieser Klasse)" und "Füge meinen Code unten ein" : -
// Klasse wird von unterhalb der Zeile beginnen Kopie von hier aus starten
lass SCREEN_HEIGHT = UIScreen.mainScreen (). bounds.size.height
uIKit importieren
erweiterung 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();
}
}
}
}
// class endet am oberen Rand stop copy code in der oberen Zeile und hinter diesen in Ihrem "MyCustomNavBarCategory.Swift" . das ist es geniessen;).
SCHRITT 3: - Jetzt können Sie jedem Objekt von UINavigationBar in dieser Klasse einen beliebigen Frame zuweisen "Es ist eine sehr mächtige Kategorie von UINavigationBar, wenn Sie es vorsichtig implementieren" .