Как перемещаться из одного вида в другой без использования NavigationController?

Я хочу вызвать UITabBarController после входа из UIViewController

Я использую 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. Спасибо

2 ответа

  • Вы должны иметь контроллер представления, из которого вы перемещаетесь, находится в навигации. Если это не так, то создайте объект контроллера представления навигации с root, используя ваш контроллер представления источника в качестве корневого контроллера представления.

Если вы не хотите использовать контроллер навигации, вы можете использовать метод PresentViewController для представления контроллера представления.

В документе Apple говорится: " Объект контроллера навигации управляет отображаемыми в данный момент экранами с помощью стека навигации, который представлен массивом контроллеров представления. Первый контроллер представления в массиве является корневым контроллером представления. Последний контроллер представления в массиве - это контроллер представления, отображаемый в данный момент. Вы добавляете и удаляете контроллеры представления из стека, используя segues или используя методы этого класса.

Так что теперь, если вы не хотели, чтобы вы использовали UINavigationController и добавить UIViewController, следуйте приведенным ниже методам:

  1. Настоящий ViewController
  2. Добавить в качестве детского ВК
Другие вопросы по тегам