Pour simplifier les choses, en raison de la conception de l'application, je ne peux pas utiliser un contrôleur de navigation intégré et dois à la place utiliser un bouton de retour manuel sur le contrôleur de vue pour revenir au précédent. Pour autant que je sache, les contrôleurs de vue précédents poussent également vers celui-ci par programme. J'ai donc trouvé un excellent code pour un bouton sur de nombreuses questions différentes ici, et je l'ai écrit pour cette application. Le problème est que lorsque j'exécute le programme, l'élément de bouton de barre que j'ai créé ne s'affiche pas. Le code ne montre aucune erreur et je ne comprends pas pourquoi rien ne s'affiche. Je vais inclure des images et le code pour rendre cela aussi clair que possible. Comme toujours merci pour toute aide que vous pouvez apporter !!!
Code utilisé:
@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)
}
}
}
Storyboard réel avec barre de navigation
Lorsque l'application est exécutée
Serait-ce que je n'ai pas fait quelque chose comme un exutoire ou quelque chose de ce genre? Merci!!
Disposition du storyboard
Modèle d'arbre de la vue détaillée (celui avec le problème de la barre de navigation)
EDIT: Cela ne fonctionne toujours pas, mais les liens et les idées que vous avez donnés m'ont donné beaucoup de nouvelles idées et options à explorer jusqu'à ce qu'une réponse plus concrète se présente. Merci!!!
Supprimez le NavigationBar
que vous avez fait glisser du panneau Bibliothèque de contrôles vers votre ViewController
. Lorsque vous définissez l' navigationItem
utilisation, self.navigationItem
il ne fera pas référence à cet navigationBar
élément car il n'a aucun lien avec lui.
Lorsque vous appuyez sur votre ViewController
utilisation, navigationController?.pushViewController(myVC, animated: true)
il apparaîtra automatiquement NavigationBar
à l' myVC
écran.
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots