Ich bin sicher, dass ich dieses Muster vor verwendet habe, ist aber etwas, das mein verhindert das Hinzufügen UIBarButtonItems meinen subclassed UINavigationControllerTasten UINavigationItem Hinzufügen funktioniert nicht bei allen
// AppDelegate
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.mainScreen().bounds);
let plainVC = UIViewController();
plainVC.title = "Plain";
let explorerNav = ExplorerNavController(rootViewController: plainVC);
window?.rootViewController = explorerNav;
window?.makeKeyAndVisible();
return true
}
//ExplorerNavController
class ExplorerNavController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Dumb", style: .Done, target: self, action: #selector(openSettings));
self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: self, action: #selector(openSettings));
}
func openSettings(){
print("did tap open settings");
}
}
ich habe auch versucht, meine Ansicht Controller Navigationspunkt Einstellung, die Elemente in viewDidAppear
statt viewDidLoad
Einstellung. Ich kann die Navigationsleiste von der gleichen viewDidLoad
stylen, während ich die Navigationselemente einstelle, was beweist, dass tatsächlich eine Instanz von ExplorerNavController erstellt wird. Ich bin nur nicht sicher, was ich vermisse.
ich denke, es funktioniert nur, wenn Sie mit der rechten und der linken Leistenschaltflächen für RootViewController eingestellt werden, wie es entworfen wurde, um diese Tasten pro Bildschirm pro Navigation nicht angezeigt werden soll. – azimov