0

Ha ii、evernoteに共有メモオプションがあるアプリケーションを実行しています。成功しました。テキストを含むテーブルビューと、これらのテキストをevernoteにアップロードするためのボタンがあります。ユーザーがセルをクリックすると、付属のチェックマークが表示されます。 uploadeのチェックマークを使用して詩を選択できますが、私の問題は、ユーザーが1つのセルをクリックしてアップロードボタンをタップすると、行のすべての値が分割された行だけでなく行全体もアップロードされることです。私のコードは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.hiはviewdidloadBOOLEAN selected; でデクラレートします

for ( int i=0; i<[appDelegate.notesArray count]; i++) { 
    selected[i] = YES;
}
4

1 に答える 1

0

デバッグのための2つのリードを提案します。まず、selectedのデフォルト値はYESであるため、すべての行がデフォルトで選択されていると想定されます。次に、タッピングイベントを見ているので、トグルコード:

selected[row] = !selected[row];

十分ではありません。配列をループして、YESに設定したindexPath.rowを除いて、すべてをNOに設定する必要があります。

for ( int i=0; i<[appDelegate.notesArray count]; i++) {
    if (i == indexPath.row) selected[i] = YES; else selected[i] = NO;
}
于 2012-01-17T15:15:40.970 に答える