Чтобы сделать это простым, из-за дизайна приложения я не могу использовать встроенный навигационный контроллер и вместо этого использовать ручную кнопку возврата на контроллере просмотра, чтобы вернуться к предыдущей. Насколько я знаю, предыдущие контроллеры представлений также подталкивают к этому программно. Поэтому я нашел отличный код для кнопки по многим различным вопросам здесь, и я написал это для этого приложения. Проблема в том, что когда я запускаю программу, элемент Button Bar, созданный мной, не отображается. Код не показывает ошибок, и я смущен, почему ничего не появляется. Я включу изображения и код, чтобы сделать это как можно более ясным. Как всегда благодарю вас за любую помощь, которую вы можете предоставить !!!Программно созданная кнопка возврата не отображается в панели навигации?
Код Использована
@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 Раскадровка с панели навигации
Когда приложение запускается
Возможно, я не сделал что-то в этом роде или что-то в этом роде? Спасибо!!
раскадровка раскладка
Дерево Модель Detail View (The один с проблемой навигационной панели)
EDIT: До сих пор не работает, но ссылки и идеи, которые вы дали дали мне много новых идей и вариантов для изучения, пока не появится более конкретный ответ. Спасибо!!!
Я бы не хотел этого. Почему нельзя использовать navigationController. –
Если бы я использовал навигационные контроллеры, это займет 3 вместо одного, потому что три разных диспетчера представлений нажимают на это единственное представление. Все внедрены в виде табуляции. Если вы думаете, что есть более простой способ, я все уши. –
@Frank_Cerny Можете ли вы показать свою структуру раскадровки. Добавили ли вы NavigationItem, перетащив элементы управления в viewController? –