0

Aus irgendeinem Grund habe ich eine UINavagationController() innerhalb eines UIViewController() hinzuzufügen, so habe ich in der View-Controller-Klasse die folgenden:Wie fügt man Titel/Schaltfläche zu einem UINavigationController hinzu, der in einem UIViewController hinzugefügt wurde?

class someViewController: UIViewController { 
    private let myNav = UINavigationController() 
    override func viewDidLoad() { 
     self.addChildViewController(myNav) 
     self.view.addSubview(myNav.view) 
     myNav.view.translatesAutoresizingMaskIntoConstraints = false 
     myNav.view.topAnchor.constraintEqualToAnchor(self.topLayoutGuide.bottomAnchor).active = true 
     myNav.view.leftAnchor.constraintEqualToAnchor(view.leftAnchor).active = true 
     myNav.view.rightAnchor.constraintEqualToAnchor(view.rightAnchor).active = true 
     myNav.view.heightAnchor.constraintEqualToAnchor(nil, constant: 44).active = true 
     myNav.didMoveToParentViewController(self) 
    } 
} 

Die Navigationssteuerung & zeigt korrekt hinzugefügt wird. Dann versuche ich, der Navigationsleiste einen Titel (oder die Schaltfläche Fertig) hinzuzufügen, die Elemente werden jedoch nicht angezeigt. Ich habe versucht, ein paar Dinge wie folgt aus:

self.navigationItem.title = "some title" 
myNav.navigationItem.title = "some title" 
myNav.navigationItem.rightBarButtonItem = btnDone 

Was ist der richtige Weg, es in diesem Fall zu tun?

Antwort

0

Warum Sie nicht über diesen einfachen Code verwenden, um eine Navigationsleiste hinzuzufügen:

let navigationBar = UINavigationBar(frame: CGRectMake(0, 0, self.view.frame.size.width, 66)) // Offset by 20 pixels vertically to take the status bar into account 


    // Create a navigation item with a title 
    let navigationItem = UINavigationItem() 
    navigationItem.title = "Title" 

    // Create left and right button for navigation item 
    let leftButton = UIBarButtonItem(title: "Save", style: UIBarButtonItemStyle.Plain, target: self, action: "btn_clicked:") 
    let rightButton = UIBarButtonItem(title: "Right", style: UIBarButtonItemStyle.Plain, target: self, action: nil) 

    // Create two buttons for the navigation item 
    navigationItem.leftBarButtonItem = leftButton 
    navigationItem.rightBarButtonItem = rightButton 

    // Assign the navigation item to the navigation bar 
    navigationBar.items = [navigationItem] 

    // Make the navigation bar a subview of the current view controller 
    self.view.addSubview(navigationBar) 
+0

Dank. Ich weiß diesen Weg, aber wenn ich 'UINavigationBar' Methode verwende, habe ich Probleme, die oberen Ecken zu runden. Ich habe eine Lösung in SO gefunden, aber wenn ich die oberen Ecken mit der 'CAShapeLayer' Lösung gerundet habe, verschwindet der Titel/Button irgendwie. Also versuche ich die Option "UINavigationController" erneut zu untersuchen. –

Verwandte Themen