0

我创建了包含第一个 CategoryViewController 和第二个 CheckListTableController 的 StoryBoard segue 应用程序。类别(按钮)明智我在 CheckListTableController 的 tableview 上打开不同的问题列表。

我在 tableView 单元格中设置了选中和取消选中按钮及其各自的颜色。我已经采用 NSMutableArray 并将 indexPath 添加到此以将特定颜色设置为单元格。

当我在这些控制器之间导航时,我希望我的 tableView 单元格颜色应该保留。

任何想法如何做到这一点。提前致谢。

编辑查询 26Aug13

现在我需要使用 plist 文件或核心数据来实现相同的功能。这样用户就可以保存任务会话并在以后访问它。例如。在第一个会话中,他确实检查了 ABC 建筑物的取消选中标记,然后会话保存。第二次会议他再次检查/取消了不同位置 XYZ 建筑物的活动,然后保存。

哪种方法适合这里。Plist 文件或核心数据?你能把我重定向到具体的解决方案吗?

用一些代码编辑

Catergory_ViewController.m 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

{
if([segue.identifier isEqualToString:@"chkListTable"])
{
     NSString *bldgArrayString = [[NSString alloc] initWithFormat:@"bldg"];
    checkListTableViewController *chk= segue.destinationViewController;

    chk.gotquestArrayString = bldgArrayString;   

}
}



checkListTableViewController.m 


- (void)viewDidLoad
{
[super viewDidLoad];
if ([gotquestArrayString isEqual:@"bldg"])
{

    buildingQuest = [[NSMutableArray alloc]initWithObjects:@"Motor vehicles are not  parked in the space",

                     @"Lightning protection system (Electronic)",

                     @"Lightning protection systems available on all buildings",

                     @"Reception facilities in order and not damaged",
}
}
 //tableView button method where indexPath added to MutableArray
-(void)yesAction:(id)sender
{
arrayCheckUnchek = [[NSMutableArray alloc]init];
UIButton *button = (UIButton *)sender;
UITableViewCell *cell = (UITableViewCell *)button.superview.superview;
UITableView *curTableView = (UITableView *)cell.superview;
NSIndexPath *indexPath = [curTableView indexPathForCell:cell];
cell.backgroundColor = [UIColor greenColor];
[arrayCheckUnchek addObject:indexPath];
}

- (void)tableView: (UITableView*)tableView
 willDisplayCell: (UITableViewCell*)cell
forRowAtIndexPath: (NSIndexPath*)indexPath
{
// UITableViewCell *Cell = [myChklist cellForRowAtIndexPath:indexPath];
 if ([arrayCheckUnchek containsObject:indexPath])
 {
    cell.backgroundColor = [UIColor greenColor];
 }
 }
4

1 回答 1

0

1.当您更改选择(选中/未选中)时,您需要将 NSMutable 数组保存在 Plist 文件或 UserDefaluts 中,此时您应该更新您的 Plist 或 userdefaluts 2.在 tableviewcontroller 的 ViewWillApper 方法中读取您的 plist 文件。并将此数据传递给您的“arraycheckuncheck”

希望它对你有用

快乐的编码....

  • 非甾体抗炎药
于 2013-05-30T02:49:19.287 回答