我正在开发一个带有情节提要的待办事项应用程序,并希望实现这种情况:
我的根控制器是一个标签栏。
我有五个标签栏按钮:今天明天和未来以及另外两个 - 每个都有一个 UINavigationController,它通向一个 UITableViewController。
事情是所有五个在实现上都是相同的,它们之间的唯一区别是它们的数据。
我的问题是如何用故事板实现这个场景?
我正在开发一个带有情节提要的待办事项应用程序,并希望实现这种情况:
我的根控制器是一个标签栏。
我有五个标签栏按钮:今天明天和未来以及另外两个 - 每个都有一个 UINavigationController,它通向一个 UITableViewController。
事情是所有五个在实现上都是相同的,它们之间的唯一区别是它们的数据。
我的问题是如何用故事板实现这个场景?
在故事板中,您必须创建三个(或更多)与 连接的 UIViewController(或 UITableViewController)Tab Bar Controller
,如下所示:
这三个tableView cells
必须具有相同的cell identifier
:
并且您需要为每个设置相同的类UIViewController
(或者UITableViewController
- 我假设该类被调用FirstViewController
):
最后,您需要选择 tableViews 并以不同的方式设置标签:
现在让我们来看代码。在您的 FirstViewController.h(或其他类名)中,添加 tableView 委托和数据源方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if ([tableView tag] == 0) {
// today table
return [todayArray count];
}else if ([tableView tag] == 1) {
// tomorrow table
return [tomorrow count];
} else if ([tableView tag] == 2) {
// future table
return [future count];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if ([tableView tag] == 0) {
// today table
// Do something with the today tableView
}else if ([tableView tag] == 1) {
// tomorrow table
// Do something with the tomorrow tableView
} else if ([tableView tag] == 2) {
// future table
// Do something with the future tableView
}
return cell;
}
希望这对您有所帮助,并让您解决问题...