我有以编程方式完成的Tabbar控制器。和选项卡栏工作正常。在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)
}
}
这是我的firstViewController代码的firstVC:
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.
}
}