Ios 推送时隐藏导航栏不工作
我试图推送到一个viewController,但是我不想在这个viewController中隐藏导航栏。然而,它似乎不适用,即使我已经设置了以下推动Ios 推送时隐藏导航栏不工作,ios,swift,Ios,Swift,我试图推送到一个viewController,但是我不想在这个viewController中隐藏导航栏。然而,它似乎不适用,即使我已经设置了以下推动 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let cameraViewController = ALCameraViewController(croppingEnabled: false) { image
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cameraViewController = ALCameraViewController(croppingEnabled: false) { image in
// Do something with your image here.
// If cropping is enabled this image will be the cropped version
}
cameraViewController.navigationController?.setNavigationBarHidden(true, animated: false)
self.navigationController?.pushViewController(cameraViewController, animated: true)
}
另一条路。您可以直接在cameraViewController上隐藏/显示导航栏 --迅速地--
override func viewWillAppear(animated: Bool) {
self.navigationController?.navigationBarHidden = true
}
override func viewWillDisappear(animated: Bool) {
self.navigationController?.navigationBarHidden = false
}
--Swift 4.0--
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.isNavigationBarHidden = true
}
override func viewWillDisappear(_ animated: Bool) {
self.navigationController?.isNavigationBarHidden = false
}
另一条路。您可以直接在cameraViewController上隐藏/显示导航栏 --迅速地--
override func viewWillAppear(animated: Bool) {
self.navigationController?.navigationBarHidden = true
}
override func viewWillDisappear(animated: Bool) {
self.navigationController?.navigationBarHidden = false
}
--Swift 4.0--
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.isNavigationBarHidden = true
}
override func viewWillDisappear(_ animated: Bool) {
self.navigationController?.isNavigationBarHidden = false
}
您的代码无法工作,因为尝试在navigationController属性等于文档中的零引号时访问它:如果视图控制器未嵌入到导航控制器中,则此属性为零
所以,如果您需要在指定的视图控制器中隐藏导航栏,请使用来自Keyur的代码,或者,如果您无法修改此视图控制器的代码,也无法将其子类化,您可以在内部隐藏/显示导航栏-navigationController:willShowViewController:animated:在您的导航控制器委托中您的代码不起作用,因为尝试访问navigationController属性(当它等于零时)引用文档:如果视图控制器未嵌入导航中,则此属性为零控制器
所以,如果您需要在指定的视图控制器中隐藏导航栏,请使用来自Keyur的代码,或者,如果您无法修改此视图控制器的代码,也无法将其子类化,您可以在-navigationController:willShowViewController:animated内隐藏/显示导航栏:在您的导航控制器代理中,您需要在故事板中选择您的ViewController并转到编辑器->嵌入->导航控制器。我有两个导航控制器,一个在根目录下,另一个跟随我的ViewController。而navigationBarHidden true或false,对我来说非常适合。在故事板中,您需要选择您的ViewController,然后进入编辑器->编辑->导航控制器。我有两个导航控制器,一个在根目录下,另一个跟随我的ViewController。至于navigationBarHidden true或false,对我来说非常适合。你有什么问题?sel.view.navigationController?.setNavigationBarHiddentrue,动画:false我的问题是我只想在CameraviewController中隐藏navigationBar你有什么问题?sel.view.navigationController?.setNavigationBarHiddentrue,动画:False我的问题是我只想在CameraviewController中隐藏导航栏另一种情况是您正在使用注销并返回到InitViewController,如果您带着“Storyboards ID”返回,则需要将您的标识符放入NavigationController中,而不是InitViewController中。另一种情况是,您正在使用注销并返回InitViewController,如果您带着“故事板ID”回来,您需要将您的标识符放在NavigationController中,而不是InitViewController中。