2012-04-23 3 views
0

THX FOR HELP!сделать кнопку «Далее» отключена, если ни одна ячейка не проверена.

Я изменил Viewdidload как это, и теперь он отлично работает для меня! И Получение места и взяли предикат для синхронизации проверки и состояния кнопки

- (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

вы можете сделать свойство его, что непосредственно отображаются с Tableview ячейкой при выборе ячейки ее значение станет да и наоборот. Теперь, основываясь на этой переменной 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

i отредактировал мой вопрос – Bashud

+0

@Bashud - перебирать состояние всех ячеек в viewDidLoad и обновлять счетчик. – MByD