为了简单起见,由于应用程序设计的原因,我无法使用嵌入式导航控制器,而是必须使用视图控制器上的手动后退按钮返回到前一个按钮。据我所知,以前的视图控制器也以编程方式推送到这个视图控制器。所以我在这里找到了很多不同问题上的按钮的一些很好的代码,并且我为这个应用程序编写了它。问题是,当我运行该程序时,我创建的栏按钮项目不显示。该代码显示没有错误,我很困惑为什么没有显示出来。我将包含图像和代码,以尽可能使这一点变得清晰。一如既往感谢您提供任何帮助!以编程方式创建后退按钮不会显示在导航栏中?
代码中使用:
@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)
}
}
}
与导航栏
实际故事板当应用程序运行
难道我没有做出某种出路或类似的东西?谢谢!!
故事板布局
的详细信息视图树模型(带有导航栏的问题)
编辑:还没工作,但链接和想法,你给了给了我很多新的想法和选择,直到更具体的答案出现。谢谢!!!
我不会喜欢这种方式。为什么不能使用navigationController。 –
如果我使用导航控制器,则需要3个而不是1个,因为3个不同的视图控制器正在推送到该单个视图。全部植根于选项卡视图。如果你认为有一个更容易的方法,我全都耳熟能详。 –
@Frank_Cerny你可以展示你的故事板结构。您是否通过从控件拖放到viewController来添加NavigationItem? –