0

私のviewControllerには、ユーザーがcoreDataを介してセルを追加できるtableViewが含まれています。セルを定義しました:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CellIdentifier = @"Travel";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

        NSManagedObject *travel = [self.travelling objectAtIndex:indexPath.row];

        UILabel *countryLabel = (UILabel *)[cell viewWithTag:101];
        kategorieLabel.text = [travel valueForKey:@"country"];

        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
            [button setBackgroundImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
        button.frame = CGRectMake(15.0f, 32.0f, 24.0f, 20.0f);
        [cell addSubview:button];

            if ([[travel valueForKey:@"tick"] isEqualToString:@"yes"]) {
        [cell setAccessoryType:UITableViewCellAccessoryCheckmark];
    }else{
        [cell setAccessoryType:UITableViewCellAccessoryNone];
    }
        return cell; 
    }

- (void)buttonTapped:(UIButton *)sender {
    UITableViewCell *owningCell = (UITableViewCell*)[sender superview];
    [owningCell setAccessoryType:UITableViewCellAccessoryCheckmark];
    NSIndexPath *indexPath = [_tableView indexPathForCell:owningCell];
    NSManagedObject *travel = [self.travelling objectAtIndex:indexPath.row];
    [travel setValue:@"yes" forKey:@"tick"];
    }

ユーザーがセルのボタンをタップすると、チェックマークが表示されます。しかし、アプリをリロードまたは再起動すると、すべてのチェックマークが表示されるわけではありません。たぶん、これを行うためのより良い方法があります。

4

0 に答える 0