2017-06-01 1 views
0

In meinem root view controller ich ein Array von bar-Taste Elemente mit Bildern und weisen sie auf die rechte Leiste Schaltfläche.Swift, wie Navigationsleiste Schaltflächenelemente nach dem Push erhalten

Wenn ich den nächsten View-Controller drücke, wird meine Navigationsleiste zurückgesetzt und nur eine Zurück-Schaltfläche angezeigt.

Gibt es eine Möglichkeit, die Navigationsleiste so zu speichern, wie sie auf dem Stammansicht-Controller festgelegt wurde, sodass sie auf allen Seiten angezeigt wird?

+0

In 'prepareForSegue' die rechten Navigationselemente des Zielansicht-Controllers einstellen. – user1046037

Antwort

-1

Wenn Sie mit Push zwischen den View-Controllern wechseln, erhalten Sie die Standard-Animations-Animation "Horizontale Folie". Probieren Sie "Present Modally" oder "Present as Popover".

0

Wie Benutzer1046037 gesagt hat, können Sie die Elementschaltflächen während der Vorbereitung des Abschnitts einstellen.

Beispiel:

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) 

Dieses ist die linke Taste Element und die Rückseite eines zu bewahren.

helpViewController.navigationItem.leftItemsSupplementBackButton = true 

Wenn Sie vorhaben, die gleiche Taste in mehreren Viewcontrollers verwenden Sie den Knopf und sein Verhalten eine BaseViewController Einrichtung schaffen.

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 
    } 
} 

Dann erben Sie es einfach, in den ViewControllern, die Sie die Schaltfläche (n) anzeigen möchten.

class HelpViewController: AHBaseViewController { 

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