打开CameraController(BarCodeScanner)时TabbarController没有隐藏

我有一个BarCodeScanner-viewController,可以从3个不同的视图调用它。我的应用程序还具有一个tabbarController。问题是,标签栏从两个viewController中隐藏,而第三个则始终显示tabbarController,而在cameraMode(barCodeScanner)中。

我试图在viewDidLoad(),viewDidAppear()和viewWillAppear()两者中都设置“ self.tabBarController?.tabBar.isHidden = true”,并在viewWillDisappear()上将其更改为false

我还测试了将'scanner.hidesBottomBarWhenPushed = true'设置为无结果。

// working:
setUpBackButton(withTitle: NSLocalizedString("button_cancel",comment: ""))
        let scanner = BarCodeScanner()
        self.navigationController?.pushViewController(scanner,animated: true)
        scanner.callback = { result in
            // code with result
        }


// working: 
setUpBackButton()
        let scanner = BarCodeScanner()
        scanner.modalPresentationStyle = .overCurrentContext
        self.navigationController?.pushViewController(scanner,animated: true)
        scanner.callback = { result in
            // code with result
        }


// NOT WORKING (i.e. not hiding the tabbarController):
let scanner = BarCodeScanner()
        setupBackButton()
        scanner.modalPresentationStyle = .overCurrentContext
        self.navigationController?.pushViewController(scanner,animated: true)
        scanner.callback = { result in
            // code with result
        }

在第三个示例中,我也不会隐藏选项卡。

guopu8483 回答:打开CameraController(BarCodeScanner)时TabbarController没有隐藏

实际上,使用Push会在navigationController中添加一个新的控制器,这就是为什么您的标签栏没有隐藏以使用新的控制器覆盖来隐藏它的原因,您需要在Thrid示例中使用当前功能更改push

替换

self.navigationController?.pushViewController(scanner,animated: true)

使用

self.navigationController?.present(scanner,animated: true,completion: nil)
本文链接:https://www.f2er.com/3152966.html

大家都在问