gpt4 book ai didi

ios - UITableViewCell Checkmark - 如何保存和检索 indexPath?

转载 作者:行者123 更新时间:2023-11-29 02:27:06 26 4
gpt4 key购买 nike

关注 previous SO question ,我试图通过保存和其他内容来正确选择 tableView 单元格。

我已经将其切换,但无法保存indexPath并检索它以显示选择,即使用户离开 View 或重新启动应用程序也是如此。

代码如下:

@property (nonatomic, strong) NSIndexPath* lastIndexPath;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

...
if([self.lastIndexPath isEqual:indexPath])
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
...
}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

if(self.lastIndexPath)
{
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self.lastIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
if([self.lastIndexPath isEqual:indexPath])
{
self.lastIndexPath = nil;
}
else
{
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.lastIndexPath = indexPath;
}


NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSNumber numberWithInt:self.lastIndexPath.row] forKey:@"selectedCell"];
[defaults synchronize];

}

即使在用户关闭并重新打开 View 后,如何保存 indexPath 并检索它以显示选择?

提前致谢。

最佳答案

您应该在 viewWillAppear 中添加它。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSNumber *lastRow = [defaults objectForKey:@"selectedCell"];
if (lastRow) {
self.lastIndexPath = [NSIndexPath indexPathForRow:lastRow.integerValue inSection:0];
}

当您重新启动应用程序时,您应该从NSUserDefaults 获取lastIndexPath,否则为nil。

关于ios - UITableViewCell Checkmark - 如何保存和检索 indexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27389307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com