0

我想在从 UIViewController 登录后调用 UITabBarController

我使用 pushViewController 但它不起作用。这是我的代码

    let dashboarController = DashboardTabBarController()
    self.navigationController?.pushViewController(dashboarController, animated: false)
    self.dismiss(animated: true, completion: nil)

这是我在 DashboardController 中的代码

 DashboardTabBarController: UITabBarController, UITabBarControllerDelegate {

override func viewDidLoad() {
    super.viewDidLoad()
    self.delegate = self
    self.view.backgroundColor = UIColor.white

    print("test")
    // Do any additional setup after loading the view.
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    let tabOne = MerchantTableViewController()
    let tabOneBarItem = UITabBarItem(title: "Merchant", image: UIImage(named: "icon_merchant"), selectedImage: UIImage(named: "icon_merchant"))
    tabOne.tabBarItem = tabOneBarItem

    let tabTwo = RewardsViewController()
    let tabTwoBarItem2 = UITabBarItem(title: "Rewards", image: UIImage(named: "icon_reward"), selectedImage: UIImage(named: "icon_reward"))
    tabTwo.tabBarItem = tabTwoBarItem2

    let tabThree = ViewController()
    let tabTwoBarItem3 = UITabBarItem(title: "Promos", image: UIImage(named: "icon_promos"), selectedImage: UIImage(named: "icon_promos"))
    tabThree.tabBarItem = tabTwoBarItem3

    let tabFour = MerchantTableViewController()
    let tabTwoBarItem4 = UITabBarItem(title: "Transactions", image: UIImage(named: "icon_card"), selectedImage: UIImage(named: "icon_card"))
    tabFour.tabBarItem = tabTwoBarItem4

    let tabFive = ProfileViewController()
    let tabTwoBarItem5 = UITabBarItem(title: "Profile", image: UIImage(named: "icon_profile"), selectedImage: UIImage(named: "icon_profile"))
    tabFive.tabBarItem = tabTwoBarItem5
    self.viewControllers = [tabOne, tabTwo, tabThree, tabFour, tabFive]

   }
}

我是iOS开发的新手。谢谢

4

2 回答 2

0
  • 您应该让您从中导航的视图控制器在导航中。如果不是,则使用根创建一个导航视图控制器的对象,将源视图控制器作为根视图控制器。

如果您不想使用导航控制器,那么您可以使用 PresentViewController 方法来呈现视图控制器。

于 2017-01-16T06:41:11.617 回答
0

苹果文档说:导航控制器对象使用导航堆栈管理当前显示的屏幕,导航堆栈由视图控制器数组表示。数组中的第一个视图控制器是根视图控制器。数组中的最后一个视图控制器是当前显示的视图控制器。您可以使用 segue 或使用此类的方法从堆栈中添加和删除视图控制器。

所以现在,如果您不想使用UINavigationController并添加UIViewController,请按照以下方法操作:

  1. 呈现视图控制器
  2. 添加为子 VC
于 2017-01-16T04:55:07.697 回答