我不确定如何标题,甚至不知道如何开始查找。我需要一些好人的建议。我已经在线完成了一些研究,但我遇到的所有教程和建议都在viewDidLoad中进行了分类。
我有一个查看另一个tableview的tableview。第一个tableview填充了硬编码数组,如下所示:
单元格0:按标题查看列表
单元格1:作者查看列表
单元格2:按日期查看列表
" segueing"在第二个tableview中,我可以使用viewDidLoad中的NSSortDescriptor按标题,作者或日期对结果进行排序。我目前设置的方式,似乎每次我想要按某个参数(即标题,作者,日期)排序时,我将需要创建一个新的视图控制器。有没有不同的方法我可以这样做,所以我可以重用第二个tableview,而不必为每种排序创建一个新的?参数不仅仅是我提到的三个参数。故事板会很快混乱。
正在排序的信息来自自定义类,如果这会产生影响。
任何帮助都会受到赞赏,即使事实证明我每次要排序时都必须创建新的视图控制器。我只是希望有另一种选择。
以下是viewDidLoad的代码段:
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
self.dataSource = [[self.dataSource sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]] mutableCopy];
以下是来自 didSelectRow
的代码- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NavigationController *navigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"contentController"];
if (indexPath.section == 0 && indexPath.row == 0)
{
ListTableViewController *listController = [self.storyboard instantiateViewControllerWithIdentifier:@"listController"];
navigationController.viewControllers = @[listController];
}
self.frostedViewController.contentViewController = navigationController;
[self.frostedViewController hideMenuViewController];
}
答案 0 :(得分:0)
不需要单独的视图控制器。您需要将一些信息传递给第二个控制器,告诉它您要排序的内容。可能会传递其中一个字符串," title"," author",或" date"。在第二个控制器中,使用基于字符串传递的if-else子句来决定排序方式,进行排序,然后重新加载表。