0

助けてくれてありがとう!

私はそのようにViewdidloadを変更しました、そしてそれは今私のためにうまく働いています!Iam場所を取得し、述語を使用してチェックとボタンの状態を同期しました

  - (void)viewDidLoad
  {
    [super viewDidLoad];
    app = (AppDelegate *) [[UIApplication sharedApplication] delegate];

    NSManagedObjectContext *context = [app managedObjectContext];
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Standort" inManagedObjectContext:context];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ortcheck CONTAINS YES"];
    [request setPredicate:predicate];
    [request setEntity:entity];

    NSError *error = nil;
    NSArray *events = [context executeFetchRequest:request error:&error];    
    int i = events.count;

    if (i == 0) {

        myWeiter = [[UIBarButtonItem alloc] initWithTitle:@"Weiter" style:UIBarButtonItemStyleBordered target:self action:@selector(nextPressed:)];

        self.navigationItem.rightBarButtonItem = myWeiter;


         self.navigationItem.rightBarButtonItem.enabled = NO;
    }
    else {
        myWeiter = [[UIBarButtonItem alloc] initWithTitle:@"Weiter" style:UIBarButtonItemStyleBordered target:self action:@selector(nextPressed:)];

        self.navigationItem.rightBarButtonItem = myWeiter;


        self.navigationItem.rightBarButtonItem.enabled = YES;
    }
4

1 に答える 1

2

チェック カウンターをインスタンス メンバーとして追加し、それを 0 に初期化します。各チェックで増加し、チェックを外すたびに減少し、各チェックがボタンを設定した後:

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

    // snip

    //if (cell.checkButton.hidden==YES){
    //    cell.checkButton.hidden=NO;
    //}else {
    //    cell.checkButton.hidden=YES;
    //}
    BOOL state = !cell.checkButton.hidden;
    cell.checkButton.hidden=state; // simpler
    self.counter += (state) ? 1 : -1;
    [nextButton setEnabled: counter > 0];

    // snap
}
于 2012-04-23T09:15:17.810 に答える