我想在我的表格 View 重新加载时恢复复选标记,当我点击表格 View 时,复选标记被添加,当我点击第二个单元格时,旧的复选标记被删除,现在工作正常我的问题是当我的 tableview 重新加载了旧的复选标记应该出现在单元格上。 谢谢
#import "mapMenuVC.h"
#import "ViewController.h"
#import "AppDelegate.h"
@interface mapMenuVC ()
@end
@implementation mapMenuVC
@synthesize checkedIndexPath;
- (id)initWithNibNameNSString *)nibNameOrNil bundleNSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
dataArray = [[NSMutableArray alloc]initWithObjects"Street Map",@"Satellite View",@"Hybird", nil];
}
- (NSInteger)tableViewUITableView *)tableView numberOfRowsInSectionNSInteger)section{
return [dataArray count];
}
- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
if([checkedIndexPath isEqual:indexPath])
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
cell.textLabel.font = [UIFont fontWithName"Helvetica-Bold" size:16.0];
cell.textLabel.text = [dataArray objectAtIndex:[indexPath row]];
return cell;
}
- (void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath {
if(self.checkedIndexPath)
{
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self.checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
if([self.checkedIndexPath isEqual:indexPath])
{
self.checkedIndexPath = nil;
}
else
{
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.checkedIndexPath = indexPath;
}
switch (indexPath.row) {
case 0: {
[APPDELEGATE.viewController.myMapView setMapType:MKMapTypeStandard];
[APPDELEGATE.viewController.popoverController dismissPopoverAnimated:YES];
break;
}
case 1:
{
[APPDELEGATE.viewController.myMapView setMapType:MKMapTypeSatellite];
[APPDELEGATE.viewController.popoverController dismissPopoverAnimated:YES];
break;
}
case 2:
{
[APPDELEGATE.viewController.myMapView setMapType:MKMapTypeHybrid];
[APPDELEGATE.viewController.popoverController dismissPopoverAnimated:YES];
break;
}
default:
break;
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
请按照以下步骤编写
在 TableViewDidSelectRowAtIndexPath 中
[[NSUserDefaults standardUserDefaults] setInteger:indexPath.row forKey"Checked"];
[[NSUserDefaults standardUserDefaults] synchronize];
现在在 CellForRowAtIndexPath 中
if(indexPath.row == [[NSUserDefaults standardUserDefaults]integerForKey"Checked"])
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
它只勾选了您选择的最后一个值
关于iphone - 重新加载 View 后如何保存表格复选标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559937/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |