2012-04-23 14 views
0

THX for the HELP!セルがチェックされていない場合、[次へ]ボタンが無効になります

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; 
    } 
+0

をあなたがセルを選択すると、その値がYESになり、その逆になる、直接あなたのテーブルビューのセルにマッピングされているブールプロパティを作ることができます。今このbool変数に基づいて、次のボタンを有効/無効にすることもできます。 – rishi

+0

@RIP - 次のボタンの状態はすべてのセルの値に依存します。 (たとえば、セルをオフにしても、別のセルがまだチェックされていても、有効にしておく必要があります) – MByD

+0

@BinyaminSharet - すべてのセルを追跡しています。あなたのように:) – rishi

答えて

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 
} 
+0

私の質問を編集しました – Bashud

+0

@Bashud - viewDidLoad内のすべてのセルの状態を繰り返し処理し、カウンタを更新します。 – MByD

関連する問題