所选值未存储在 didSelectRow 的 AddObject 中
Posted
技术标签:
【中文标题】所选值未存储在 didSelectRow 的 AddObject 中【英文标题】:Selected Values are not storing in AddObject in didSelectRow 【发布时间】:2018-11-17 18:14:31 【问题描述】:选定的对象没有保存在 didSelectRowAtIndex 的 addObject 中,我需要将该数组传递给另一个视图控制器。
@implementation nextViewController
NSArray *tableData;
NSArray * arrayfortable;
NSMutableArray * selectedIndexpath;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
NSMutableArray *selectedIndexpath = [[NSMutableArray alloc]init];
selectedIndexpath = [selectedIndexpath arrayByAddingObject:[tableData objectAtIndex:indexPath.row]];
NSLog(@"selected",selectedIndexpath);
if (cell.accessoryType == UITableViewCellAccessoryNone)
cell.accessoryType = UITableViewCellAccessoryCheckmark;
__selectedPath = indexPath;
else
cell.accessoryType = UITableViewCellAccessoryNone;
__selectedPath = nil;
【问题讨论】:
【参考方案1】:这一行:
NSMutableArray *selectedIndexpath = [[NSMutableArray alloc]init];
正在创建一个名为 selectedIndexpath
的新局部变量,它隐藏了 selectedIndexpath
实例变量。
您需要删除该行。但是你确实需要初始化实例变量。
我会在viewDidLoad
中添加以下行:
selectedIndexpath = [[NSMutableArray alloc] init];
另一个需要的更改是替换该行:
selectedIndexpath = [selectedIndexpath arrayByAddingObject:[tableData objectAtIndex:indexPath.row]];
与:
[selectedIndexpath addObject:@(tableData objectAtIndex:indexPath.row)];
请注意,您需要将索引路径行包装为NSNumber
。
【讨论】:
以上是关于所选值未存储在 didSelectRow 的 AddObject 中的主要内容,如果未能解决你的问题,请参考以下文章