#uitabbar #uisplitviewcontroller #tabbar
Вопрос:
Я не уверен, как встроить UISplitViewController в мой контроллер панели вкладок со следующей настройкой контроллера панели вкладок:
class ClientUserTabBarController: UITabBarController {
///View did load:
override func viewDidLoad() {
super.viewDidLoad()
setAppearance()
setupTabBarTabs()
}
///Set tab bar appearance:
func setAppearance() {
let appearance = tabBar.standardAppearance
appearance.shadowImage = nil
appearance.shadowColor = nil
tabBar.standardAppearance = appearance
}
///Setup dynamic tabs:
func setupTabBarTabs() {
let home = UINavigationController(rootViewController: HomeVC())
let messages = UINavigationController(rootViewController: ChatVC())
let discover = UINavigationController(rootViewController: DiscoverVC())
let calendar = UINavigationController(rootViewController: CalendarVC())
let userProfile = UINavigationController(rootViewController: ProfileVC())
let controllers = [home, discover, calendar, chat, userProfile]
for vc in controllers {
vc.view.setMainBackgroundColor()
vc.navigationBar.isOpaque = false
vc.navigationBar.tintColor = .label
vc.navigationBar.isTranslucent = false
vc.navigationBar.barTintColor = UIColor(named: "customBackgroundControl")
vc.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.label, NSAttributedString.Key.font: Fonts.createBoldSize(18)]
vc.navigationBar.largeTitleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.label, NSAttributedString.Key.font: Fonts.createBoldSize(34)]
}
viewControllers = controllers
viewControllers?.forEach {
if let navController = $0 as? UINavigationController {
let _ = navController.topViewController?.view
} else {
let _ = $0.view.description
}
}
}
С чего бы мне вообще начать? Вся документация по этому вопросу, похоже, основана на отсутствии панели вкладок… но все же у вас есть такие приложения, как Twitter, в которых теперь есть UIDevice.current.orientation == .LandscapeRight amp; .LandscapeLeft, полностью создающие контроллер разделенного представления на вкладке «сообщения» панели управления.