Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 推送时隐藏导航栏不工作_Ios_Swift - Fatal编程技术网

Ios 推送时隐藏导航栏不工作

Ios 推送时隐藏导航栏不工作,ios,swift,Ios,Swift,我试图推送到一个viewController,但是我不想在这个viewController中隐藏导航栏。然而,它似乎不适用,即使我已经设置了以下推动 func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let cameraViewController = ALCameraViewController(croppingEnabled: false) { image

我试图推送到一个viewController,但是我不想在这个viewController中隐藏导航栏。然而,它似乎不适用,即使我已经设置了以下推动

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中。