Как go вернуть предыдущий ViewController из Tab контроллера первого индекса в iOS Swift? - PullRequest
0 голосов
/ 04 марта 2020

Из Process ViewController я перехожу к контроллеру панели вкладок первого индексного viewController и возвращаюсь снова к процессу viewController из контроллера панели вкладок.

Моя проблема возникает, когда я возвращаюсь к обработайте viewController и снова вернитесь к контроллеру панели вкладок, элементы контроллера панели вкладок не работают. Постучал по меню панели вкладок, но ничего не работает. Эта проблема возникает при возврате к контроллеру процесса и возвращению контроллера панели вкладок первого индекса.

Вот код для процесса viewController:

  public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {



    let d = getProcessDefData[indexPath.row]

    if let keyVal = d.id {

        print("val key", keyVal)

         A8FlowBuilder(self).loadTaskView(id: keyVal)

    //                let vc = TabBarViewController()
   //                vc.processDefID  = keyVal
  //                navigationController?.pushViewController(vc, animated: true)
  //            navigat

    }


 public func loadTaskView(id: String) {

    let controller = TabBarViewController()
    controller.processDefID = id
    self.taskViewNew?.addChild(controller)
    self.taskViewNew?.view.addSubview(controller.view)
    controller.didMove(toParent: taskViewNew)


  }

Вот код для панели вкладок контроллер первого индекса:

      @objc func callMethod() {

    print("back bar button item pressed")

 //        _ = navigationController?.popViewController(animated: true)


 //        navigationController?.popToViewController(ofClass: GetProcessDefinitionsController.self)

 //        let popupVC = GetProcessDefinitionsController()
 //        self.addChild(popupVC)
 //        popupVC.view.frame = self.view.frame
  //        self.view.addSubview(popupVC.view)
  //        popupVC.didMove(toParent: self)
 //        self.tabBarController?.view.removeFromSuperview()


    DispatchQueue.main.async {
      A8FlowBuilder(self).loadProcessdefView()

    }

}

Вот мой код контроллера панели вкладок:

func createTabBarController() {


         let firstVC = dashBoardViewController()
        firstVC.tabBarItem = UITabBarItem.init(title: nil, image: UIImage(named: "dashboard_icon", in: Bundle(for: TabBarViewController.self), compatibleWith: nil), tag: 0)
        firstVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0);


        let secondVC = MyTask()
        secondVC.processDefID = processDefID
        secondVC.tabBarItem = UITabBarItem.init(title: nil, image: UIImage(named: "mytask_icon", in: Bundle(for: TabBarViewController.self), compatibleWith: nil), tag: 1)
        secondVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0);


        let thirdVC = settingsViewController()
        thirdVC.tabBarItem = UITabBarItem.init(title: nil, image: UIImage(named: "settings_icon", in: Bundle(for: TabBarViewController.self), compatibleWith: nil), tag: 2)
        thirdVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0);


        let fourthVC = ProfileViewController()
        fourthVC.tabBarItem = UITabBarItem.init(title: nil, image: UIImage(named: "profile_icon", in: Bundle(for: TabBarViewController.self), compatibleWith: nil), tag: 3)
        fourthVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0);


            let controllerArray = [secondVC, thirdVC]


        tabBarCnt.viewControllers = controllerArray.map{ UINavigationController.init(rootViewController: $0)}
            self.view.addSubview(tabBarCnt.view)


    }

Вот первый индекс контроллера панели вкладок, который называется secondV C MyTask ()

Любая помощь высоко ценится пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...