TabbarController не скрывается при открытии CameraController (BarCodeScanner) - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть BarCodeScanner-viewController, который я вызываю из 3 разных представлений. Мое приложение также имеет вкладку Controller. Проблема в том, что панель вкладок скрывается от двух viewController, в то время как третий всегда показывает tabbarController, а в cameraMode (barCodeScanner).

Я пытался установить «self.tabBarController? .TabBar.isHidden = true» в обоих методах viewDidLoad (), viewDidAppear () и viewWillAppear () и изменил его на false для viewWillDisappear ()

Я также проверил, чтобы установить 'scanner.hidesBottomBarWhenPush = 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
        }

Я не хочу, чтобы панель вкладок была скрыта и в третьем примере.

1 Ответ

1 голос
/ 06 ноября 2019

Использование Push на самом деле добавляет новый контроллер в navigationController, поэтому ваша панель вкладок не скрывает его с наложением новых контроллеров, вам нужно изменить push с существующей функцией в примере Thrid

Заменить

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

С

self.navigationController?.present(scanner, animated: true, completion: nil)
...