У меня есть контроллер вкладок, который сделан программно. И панель вкладок работает нормально. В stroyboard я создал firstViewController и назначил имя класса firstViewController. Когда я пытался перейти на первый vc на контроллере панели вкладок, чтобы перейти к первому viewcontroller, и он вылеталесли я даю программно, значит, он работает нормально.
Как перейти от программного контроллера панели вкладок к контроллеру раскадровки.
вот мой код контроллера панели вкладок:
let tabBarCnt = UITabBarController()
func createTabBarController() {
let firstVC = FViewController()
firstVC.tabBarItem = UITabBarItem(tabBarSystemItem: .search, tag: 0)
let secondVC = SViewController()
secondVC.tabBarItem = UITabBarItem(tabBarSystemItem: .more, tag: 1)
let thirdVC = ViewController()
thirdVC.tabBarItem = UITabBarItem(tabBarSystemItem: .history, tag: 2)
let fourthVC = ViewController()
fourthVC.tabBarItem = UITabBarItem(tabBarSystemItem: .downloads, tag: 3)
if UIDevice.current.userInterfaceIdiom == .pad {
let controllerArray = [firstVC, secondVC, thirdVC, fourthVC]
tabBarCnt.viewControllers = controllerArray.map{ UINavigationController.init(rootViewController: $0)}
self.view.addSubview(tabBarCnt.view)
} else {
let controllerArray = [firstVC, secondVC]
tabBarCnt.viewControllers = controllerArray.map{ UINavigationController.init(rootViewController: $0)}
self.view.addSubview(tabBarCnt.view)
}
}
Вот мой первый код первого контроллера кода ViewView:
import UIKit
class FViewController: UIViewController, UITabBarDelegate {
@IBOutlet weak var firstBtn: UIButton!
@IBOutlet weak var fview: UIView!
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.blue
// self.fview.backgroundColor = .brown
// Do any additional setup after loading the view.
}
}