【问题标题】:Push View Controller by overriding shouldSelect method in TabbarViewController通过覆盖 TabbarViewController 中的 shouldSelect 方法推送 View Controller
【发布时间】:2020-02-26 19:18:07
【问题描述】:

我想在选择 TabBar 中的项目时推送 ViewController 我已经编写了以下代码但它不起作用

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
    if let ind = tabBarController.viewControllers!.index(of:viewController) , bottomBarTabsArray[ind].viewType == BottomBarInfo.VIEWTYPE_ASSISTANT { //
          let tabVC = AppStrings.appStoryBoard.instantiateViewController(withIdentifier: "assitantViewControllerID") as! AssitantViewController
        self.selectedViewController?.navigationController?.pushViewController(tabVC, animated: true)
         return false
     }
    return true
}

当tabbar item被选中而不是切换到ViewController时如何推送ViewController

【问题讨论】:

  • 导航为零print(self.selectedViewController?.navigationController)??
  • 是的,它是 nil,但我将它分配给 self?.viewControllers = listViewController.map{ return UINavigationController.init(rootViewController: $0) }
  • 哦,已经知道了,它是 UINavigationController,谢谢

标签: ios swift viewcontroller tabbar tabbarcontroller


【解决方案1】:

替换

self.selectedViewController?.navigationController?.pushViewController(tabVC, animated: true)

与

(self.selectedViewController as! UINavigationController ).pushViewController(tabVC, animated: true)

【讨论】:

    猜你喜欢
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多