Вы должны иметь возможность подкласса UITabBarController
и использовать свойство viewControllers
или метод setViewController(_:animated:)
в viewDidLoad
.Я бы порекомендовал использовать .nib
для раскладки ViewController
и создать его экземпляр с помощью init(nibName: String?, bundle: Bundle?)
.
Вместо того, чтобы ViewController
определять конфигурацию на основе его свойства tabBarItem
, вы должны иметьэта конфигурация происходит перед установкой свойства viewController
на UITabBarController
.
Примерно так:
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
var controllers = [UIViewController]()
let firstViewController = ViewController(nibName: "NIBNAME", bundle: Bundle.main)
// Configure unique properties for firstViewController here, including
// the tabBarItem.
controllers.append(firstViewController)
// Configure the rest of the ViewControllers with unique properties and add them to controllers
setViewControllers(controllers, animated: false)
}
}
Также обратите внимание, что если у вас более 5 контроллеров, вам потребуетсяиспользуйте свойство moreNavigationController
в своем подклассе UITabBarController.
Я рекомендую прочитать документацию для UITabBarController , чтобы получить представление о том, как все это сделать.