Я хочу разработать приложение, отображающее меню дней недели с понедельника по пятницу. Мне удалось добавить пять вкладок в контроллер, хотя они отображаются как пять разных вкладок. Поэтому все метки и т. Д. Нужно добавлять 5 раз.TabBarController - добавить один и тот же вид несколько раз для разных дней недели?
Вид, который отображает данные, всегда один и тот же, и сами данные отличаются. Я хотел бы создать только один вид, добавить его 5 раз и решить в самом коде, какие данные отображаются.
Это возможно?
Решение
осле я нашел решение, которое работало для меня. ViewController, который я хочу отобразить пять раз, должен иметь идентификатор.
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! UITabBarController
let storyboard = UIStoryboard(name: "Main", bundle: nil)
var vc_array = [StudiersaalTableViewController]()
for i in 0..<5 {
let vc = storyboard.instantiateViewControllerWithIdentifier("studiersaalTabBar") as! StudiersaalTableViewController
vc.currentDay = i
vc_array.append(vc)
}
var i = 0
for vc in vc_array {
let title = NSDate.getDayOfWeekAsString(i)
vc.tabBarItem = UITabBarItem(title: title.substringToIndex(title.startIndex.advancedBy(2)), image: nil, tag: i)
i++
}
controller.viewControllers = vc_array
controller.selectedIndex = NSDate().getDayOfWeek()
Это не в контроллере корневого представления. Корневой вид представляет собой представление таблицы с несколькими пунктами меню. Если я выберу первый, TabBarController должен отобразить вкладки и их содержимое. Я не совсем уверен, как сделать все это с помощью раскадровки ... Я попытался реализовать код, который вы написали в функции prepareSegue, но, к сожалению, когда я выбираю первую запись в меню, пустой контроллер навигации (или что-то подобное). – Exceen