Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式更新UITableView以响应按钮按下_Uitableview - Fatal编程技术网

以编程方式更新UITableView以响应按钮按下

以编程方式更新UITableView以响应按钮按下,uitableview,Uitableview,我有一个完全自定义的视图,其中包含一个UITableView和一个自定义选项卡栏(基本上是一个包含6个UIButtons的UIView) 我从plist文件加载数据,然后根据类别将数据排序到多个数组中(一个用于杂项项目的数组,一个用于邮件项目的数组,等等) 选项卡栏中的每个按钮代表一个类别,当我按下按钮时,我调用自定义函数“miscSelected”,以此类推 如何让表视图完全重新加载,然后根据选定的数组显示表视图(选择杂项类别,表视图将清除自身并加载杂项数组数据,与任何其他类别相同) 我试验过

我有一个完全自定义的视图,其中包含一个UITableView和一个自定义选项卡栏(基本上是一个包含6个UIButtons的UIView)

我从plist文件加载数据,然后根据类别将数据排序到多个数组中(一个用于杂项项目的数组,一个用于邮件项目的数组,等等)

选项卡栏中的每个按钮代表一个类别,当我按下按钮时,我调用自定义函数“miscSelected”,以此类推

如何让表视图完全重新加载,然后根据选定的数组显示表视图(选择杂项类别,表视图将清除自身并加载杂项数组数据,与任何其他类别相同)

我试验过的方法是创建一个名为“selection”的字符串,然后在每个按钮函数中,我将selected设置为等于我选择的任何部分。在我的cellForRoxAtIndexPath方法中,我有:

if ([self.selection isEqualToString:@"All Items"]) {
        NSArray *mainDataArray = [NSArray arrayWithContentsOfFile:self.plistFile];

        NSSortDescriptor *brandDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
        NSArray *sortDescriptors = [NSArray arrayWithObject:brandDescriptor];
        self.sortedData = [mainDataArray sortedArrayUsingDescriptors:sortDescriptors];

    }
    else if ([self.selection isEqualToString:@"Misc Items"]){

        self.sortedData = [NSArray arrayWithContentsOfFile:self.plistFile];


    }

    cell.itemTitle.text = [[self.sortedData objectAtIndex:indexPath.row] objectForKey:@"name"];
为了示例和测试,我只是简单地显示相同的数据,一个按钮按字母顺序显示,另一个按钮不按字母顺序显示

这段代码只有在我开始向下滚动和向上滚动时才起作用,但它实际上不会在按下按钮时更新。调用myTable reloadData也没有任何作用


任何帮助都会很好,谢谢

所以我花了相当长的时间寻找更多的答案。对于任何想知道的人来说,这只是一小段代码,如下所示:

[self.myTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
现在效果很好