Ich möchte die view
einer UINavigationController
in einem anderen View-Controller view
setzen. Das Problem ist, dass die rechte Leiste auf iOS 10 falsch platziert ist. Auf iOS 8 und 9 sieht es gut aus.Falsche Position von rightBarButtonItem in iOS 10
iOS 8 und 9:
iOS 10:
Hier ist der Code, wie ich die Navigation-Controller hinzufügen:
override func viewDidLoad() {
super.viewDidLoad()
let viewController = MyViewController()
navController = UINavigationController(rootViewController: viewController)
navController.willMove(toParentViewController: self)
addChildViewController(navController)
navController.view.frame = view.bounds
view.addSubview(navController.view)
navController.didMove(toParentViewController: self)
}
In MyViewController
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.rightBarButtonItem = UIBarButtonItem(
barButtonSystemItem: .done,
target: self,
action: #selector(doneButtonPressed)
)
}
Auch gibt es keine abgeschnittenen Ansichten (außer der Schaltfläche selbst). Siehe Snapshot von IB Debug anzeigen Hierachy:
Irgendwelche Ideen?
Ich denke nicht, dass dies der richtige Ansatz ist, da 'viewDidAppear' im Lebenszyklus mehrmals aufgerufen werden kann und' viewDidLoad' nur einmal aufgerufen werden kann. – lukwuerz
Ja, das ist ein anderes Thema, ich werde meinen Code entsprechend bearbeiten :-) – RJiryes
@lufritz hat es funktioniert? – RJiryes