Я довольно новый, чтобы быстро и пытаюсь создать приложение базы данных фильмов, используя TMDB от Apiary.Программно назначить контроллер просмотра контроллеру панели табуляции
Я создал макет диспетчеров вида для одной категории. Тем не менее, я планирую иметь несколько категорий, но только разница между ними - это данные, которые я извлекаю из API. Например, клавиша «now_playing» получает список воспроизведения, а клавиша «top_rated» получает список самых популярных фильмов. Когда я изначально делал это, я создал контроллер панели вкладок в AppDelegate.swift и добавил к нему ViewControllers, получив их программно из раскадровки с помощью метода instantiateViewControllerWithIdentifier. Затем, наконец, я установил контрольные контроллеры TabBarController для двух ViewControllers, выполнив следующие действия: tabBarController.viewControllers = [nowPlayingNavigationController, topRatedNavigationController]
Это работало нормально. Позже, чтобы добавить настраиваемость, я попытался создать слайд-меню с использованием представлений контейнеров.
На данный момент мне не удалось встроить программно созданный контроллер панели вкладок в большой вид контейнера с правой стороны ContainerViewController. Поскольку я не мог понять, как программно это сделать, я попытался создать TabBarController в main.storyboard и дал ему StoryboardID и попытался настроить его на переменную TabBarController в AppDelegate.swift.
var tabBarController = storyboard.instantiateViewControllerWithIdentifier("TabBarController") as! UITabBarController
позже, когда я пытаюсь изменить TabBar и назначить ранее созданные ViewControllers в TabBarController он просто не работает.
tabBarController.viewControllers = [nowPlayingNavigationController, topRatedNavigationController]
tabBarController.tabBar.barStyle = .Black
tabBarController.tabBar.tintColor = UIColor.orangeColor()
Я не уверен, почему это не работает, пожалуйста, помогите мне.
функция AppDelegate.Swift didFinishLaunchingWithOptions для справки
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
//window = UIWindow(frame: UIScreen.mainScreen().bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let nowPlayingNavigationController = storyboard.instantiateViewControllerWithIdentifier("FlicksNavigationController") as! UINavigationController
let nowPlayingViewController = nowPlayingNavigationController.topViewController as! MoviesViewController
nowPlayingViewController.endpoint = "now_playing"
nowPlayingNavigationController.tabBarItem.title = "Now Playing"
nowPlayingNavigationController.tabBarItem.image = UIImage(named: "popular")
nowPlayingNavigationController.navigationBar.barStyle = .BlackTranslucent
let topRatedNavigationController = storyboard.instantiateViewControllerWithIdentifier("FlicksNavigationController") as! UINavigationController
let topRatedViewController = topRatedNavigationController.topViewController as! MoviesViewController
topRatedViewController.endpoint = "top_rated"
topRatedNavigationController.tabBarItem.title = "Top Rated"
topRatedNavigationController.tabBarItem.image = UIImage(named: "topRated")
topRatedNavigationController.navigationBar.barStyle = .BlackTranslucent
var tabBarController = storyboard.instantiateViewControllerWithIdentifier("TabBarController") as! UITabBarController
//tabBarController.viewControllers = [nowPlayingNavigationController, topRatedNavigationController]
tabBarController.tabBar.barStyle = .Black
tabBarController.tabBar.tintColor = UIColor.orangeColor()
//let containerViewController = storyboard.instantiateViewControllerWithIdentifier("ContainerViewController") as! ContainerViewController
//let mainContainerView = containerViewController.mainContainerView
//window?.rootViewController = tabBarController
//window?.makeKeyAndVisible()
return true
}
Определить «просто не работает». –
Просто не работает, поэтому контроллер панели вкладок не изменяется. Результатом является изображение симуляции. Контроллеры представлений, которые я назначаю контроллеру панели вкладок, не отображаются, и цвет полос вкладок не изменяется. –
лучше загрузить проект в Dropbox. –