我想开发一个应用程序,显示周一至周五的一周中的菜单。我设法向控制器添加了五个选项卡,尽管它们显示为五个不同的选项卡。因此,所有标签等都需要添加5次。
显示数据本身的视图始终相同,只是数据本身不同。我只想设计一个视图,添加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()
答案 0 :(得分:0)
使用一个视图控制器子类,其枚举属性包含一周中的日期。假设您的标签栏控制器是根视图控制器,它可能最容易在AppDelegate中创建视图控制器,如下所示:
let mondayVC = WeekViewController(day: .Monday)
let tuesdayVC = WeekViewController(day: .Tuesday)
// etc..
tabBarController.viewControllers = [mondayVC, tuesdayVC]
然后在您的视图控制器子类(WeekViewController或任何您想要调用它)中,您可以设置标签栏项目图像和标题。然后根据它所具有的每周日期属性,您可以确定要显示的信息。