Um dies zu vereinfachen, kann ich aufgrund des App-Designs keinen eingebetteten Navigationscontroller verwenden und stattdessen eine manuelle Zurück-Schaltfläche auf dem Ansichtscontroller verwenden, um zum vorherigen zurückzukehren. Soweit ich weiß, drücken die vorherigen View-Controller dieses auch programmatisch an. Also habe ich hier einen großartigen Code für einen Button zu vielen verschiedenen Fragen gefunden, und ich habe ihn für diese App geschrieben. Problem ist, wenn ich das Programm starte, wird das Bar Button Item, das ich erstellt habe, nicht angezeigt. Der Code zeigt keine Fehler und ich bin verwirrt, warum nichts auftaucht. Ich werde Bilder und den Code einfügen, um dies so klar wie möglich zu machen. Wie immer vielen Dank für jede Hilfe, die Sie zur Verfügung stellen können !!!Programmatisch erstellte Schaltfläche "Zurück" wird nicht in der Navigationsleiste angezeigt?
Kode:
@IBOutlet weak var roomImage: UIImageView!
@IBOutlet weak var locationLabel: UILabel!
@IBOutlet weak var roomName: UINavigationItem!
override func viewDidLoad() {
super.viewDidLoad()
// Back Button Code
let backButton = UIBarButtonItem(title:"Back",style: UIBarButtonItemStyle.plain, target: self, action: #selector(DetailView.back(sender:)))
self.navigationItem.leftBarButtonItem = backButton
navigationItem.rightBarButtonItem = backButton
navigationItem.hidesBackButton = false
// Hide da tab bar
self.tabBarController?.tabBar.isHidden = true
// Do any additional setup after loading the view.
// Enter data from other view controllers
//roomName.title = stringPassed
roomImage.image = imagePassed
locationLabel.text = locationPassed
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
// Back Button Action
func back(sender: UIBarButtonItem) {
if let navigationController = self.navigationController {
navigationController.popViewController(animated: true)
}
}
}
Actual Storyboard mit Navigationsleiste
Wenn die App ausgeführt wird
Könnte es sein, dass ich etwas nicht zu einer Steckdose oder etwas in der Art gemacht habe? Vielen Dank!!
Storyboard-Layout
Baum Modell Detailansicht (die mit der Navigationsleiste Ausgabe)
EDIT: Immer noch nicht funktioniert, aber die Links und Ideen, die Sie gaben haben mir viele neue Ideen und Optionen gegeben, die ich erforschen kann, bis sich eine konkretere Antwort ergibt. Vielen Dank!!!
Ich hätte diesen Weg nicht bevorzugt. Warum kann ein navigationController nicht verwendet werden? –
Wenn ich Navigationssteuerungen verwenden würde, würde es 3 statt einer nehmen, weil 3 verschiedene View-Controller zu dieser einzigen Ansicht drängen. Alle wurzeln in einer Tab-Ansicht. Wenn du denkst, dass es einen leichteren Weg gibt, bin ich ganz Ohr. –
@Frank_Cerny Können Sie Ihre Storyboardstruktur zeigen? Haben Sie NavigationItem hinzugefügt, indem Sie von den Steuerelementen zu ViewController gezogen haben? –