Когда я поп-контроллер получаю черный экран?

starterMac спросил: 28 апреля 2018 в 09:15 в: ios

(мне нужен текущий vc not push vc)

У меня есть панель вкладок и интерфейс контроллера навигации

мой первый элемент вкладки vc1 и второй элемент панели вкладок - vc2

push vc отлично работает, это то, что я сделал. Шаг 1 - Я нажимаю кнопку в vc1, которая переводит меня на vc3 с помощью навигационного нажатия

Далее я нажал на вкладку vc2 tabthen, затем нажимаю элемент vc1 tabthen, и затем я нажимаю кнопку BACK vc3, что я получаю, это правильный поток приложения.

backbutton делает pop viewcontroller

   fileprivate func presentDetail(at indexPath: IndexPath) {
        self.updateCell(at: indexPath)
        self.startLoading()
      let vc3 = storyboard?.instantiateViewController(withIdentifier: "vc3") as! vc3
            //   self.navigationController?.setViewControllers([vc,vc1], animated: true)            vc3.modalPresentationStyle = .overCurrentContext
        vc3.data = mDataSource.shared.demoData[indexPath.row]
          if let navigator = navigationController {
            navigator.pushViewController(vc3, animated: true)
}  @IBAction func backBtnTapped(_ sender: Any) {
        self.navigationController?.popViewController(animated: true)
       // performSegue(withIdentifier: "unwindSegueToVC1", sender: self)
    }

как сделать текущую работу VC?

  let vc = storyboard.instantiateViewController(withIdentifier: "vc3") as! vc3       vc3.modalPresentationStyle = .overCurrentContext
            vc3.data = mDataSource.shared.demoData[indexPath.row]
 self.present(vc, animated: true, completion: nil)

2 ответа

Canh Tran ответил: 28 апреля 2018 в 10:11

Вы пытались удалить эту строку?

vc3.modalPresentationStyle = .overCurrentContext

Эта строка нужна только тогда, когда вы собираетесь представить представление.

starterMac ответил: 28 апреля 2018 в 10:29
ужасно жаль, что я ошибся вопрос, позвольте мне отредактировать его .. на самом деле он работает правильно для push, я хотел знать, есть ли все равно, чтобы заставить его работать на настоящий vc, поскольку текущий vc даст мне пустой экран ..... прочитайте мой отредактированный вопрос
Rohit Makwana ответил: 28 апреля 2018 в 10:12
fileprivate func presentDetail(at indexPath: IndexPath) {    self.updateCell(at: indexPath)
    self.startLoading()    let vc3 = storyboard?.instantiateViewController(withIdentifier: "vc3") as! vc3
    self.hidesBottomBarWhenPushed = true //Use this line so you can hide tabbar. when you push to vc3 screen
    self.navigationController?.pushViewController(vc3, animated: true)}@IBAction func backBtnTapped(_ sender: Any) {
    self.navigationController?.popViewController(animated: true)
}