Ich habe einen View-Controller, der in einem Navigationscontroller eingebettet ist.Absturz beim Einstellen von Navigationselementen auf UINavigationBar
In der Navigationsleiste habe ich ein segmentiertes Steuerelement in der Mitte der Leiste und dann eine Bearbeitungsschaltfläche auf der rechten Seite.
func editAction() {
if homeworkTasksVC?.editing == false {
// Set to editing
homeworkTasksVC?.setEditing(true, animated: true)
// Switch to "Done" button and 'Homework' title without segmented control
let navBar = self.navigationController?.navigationBar
let navItem = UINavigationItem(title: "Homework")
let doneButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: #selector(TasksParentViewController.editAction))
navItem.rightBarButtonItem = doneButton
navBar!.setItems([navItem], animated: true)
} else {
// Stop editing
homeworkTasksVC?.setEditing(false, animated: true)
// Switch back to "Edit" button and segmented control
let navBar = self.navigationController?.navigationBar
let navItem = UINavigationItem(title: "Homework")
navItem.titleView = segmentControl
let editButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit, target: self, action: #selector(TasksParentViewController.editAction))
navItem.rightBarButtonItem = editButton
navBar!.setItems([navItem], animated: true)
}
}
(Hinweis: die homeworkTasksVC in Frage, weil die Sicht zwischen zwei Ansichten ein UIPageViewController als Schalter ist referenziert)
Wenn ich auf die Schaltfläche Bearbeiten tippen, wird der folgende Code gefeuert
PROBLEM : Wenn ich auf "Bearbeiten" tippe, schaltet das segmentierte Steuerelement für den Texttitel ohne Probleme um und schaltet dann wieder ganz auf "Bearbeiten" zurück ABER wenn ich auf eine Zelle in der Ansicht tippe, die zu einer anderen Ansicht navigiert, und Tippen Sie dann auf "Zurück", um zu dieser ursprünglichen Ansicht zurückzukehren, und tippen Sie dann auf Bearbeiten, d t stürzt mit der folgenden Ausgabe:
2016-06-22 00: 38: 59,272 2.0 [1504: 386.949] * Beenden app aufgrund nicht abgefangene Ausnahme 'NSInternalInconsistencyException' Grund: ‚Kann nicht setItems nennen: animated: direkt auf einer UINavigationBar, die von einem Controller verwaltet wird. " * ersten Wurf Call-Stack: (0x23c85b0b 0x23442dff 0x23c85a51 0x283a0ced 0x118318 0x1189c8 0x2829b6a1 0x2841e0b9 0x2829b6a1 0x2829b631 0x2828356b 0x28283697 0x2829af51 0x2829abbf 0x28293547 0x28263dd5 0x28262379 0x23c479e7 0x23c475d7 0x23c4593f 0x23b941c9 0x23b93fbd 0x251b0af9 0x282cc435 0xe8cb4 0x23840873) libC++ abi.dylib: endet mit abgefangene Ausnahme von Typ NSException (LLDB)
Können Sie das bitte im Code erklären? :) Ich habe das Gefühl, dass ich das schon mache ...? – Max
Ich habe meine Antwort aktualisiert. – robinkunde