哈,我正在做一个有evernote共享注释选项的应用程序,我已经成功完成了,我有一个包含文本的tableview和一个用于将这些文本上传到evernote的按钮,如果用户单击该单元格,那么accsocory checkmark是来吧,他可以通过使用uploade的复选标记来选择这节经文。但我的问题是,当用户点击一个单元格并点击上传按钮时,它将上传行中的所有值,不仅包括扇形行,还包括整行。 我的代码是 Buttonclick:
-(IBAction)sendNoteEvernote:(id)sender{
NSMutableString *str = [[NSMutableString alloc] initWithString:@"NOTES:"];
for (int i = 0; i<[appDelegate.notesArray count]; i++) {
// UPLOAD STRINGS HERE
if (selected[i])
[str appendFormat:@"%@ ,",[appDelegate.notesArray objectAtIndex:i]];
NSString * ENML= [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">\n<en-note>%@",str];
}
str是上传的值 selectrowatindexpath中的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSUInteger row = [indexPath row];
selected[row] = !selected[row];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = selected[row] ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
in.h我决定BOOLEAN selected;
在viewdidload中
for ( int i=0; i<[appDelegate.notesArray count]; i++) {
selected[i] = YES;
}
答案 0 :(得分:0)
我建议两个用于调试的线索。首先,您选择的默认值为YES,因此它假定默认选择所有行。其次,由于您正在查看点击事件,因此切换代码为:
selected[row] = !selected[row];
是不够的,你需要遍历数组,将所有内容设置为NO,除了你设置为YES的indexPath.row。
for ( int i=0; i<[appDelegate.notesArray count]; i++) {
if (i == indexPath.row) selected[i] = YES; else selected[i] = NO;
}