Ich möchte meine Schaltfläche in meiner Popover-Klasse ausblenden, wenn mein Bool-Wert in der anderen Klasse falsch ist, aber das Problem ist, ich bekomme nicht den "TRUE" -Wert.Überprüfen, ob Bool Wert geändert
My First Class
-(void) hideButton{
finished = _secondVC.finished;
BOOL isRunning = !finished;
if(isRunning){
_deleteButton.hidden = YES;
}else if(finished){
_deleteButton.hidden = NO;
}
}
nenne ich die Methode der hideButton in meiner ViewWillAppear Funktion.
Meine zweite Klasse
-(void) someAction{
if(something){
self.finished = YES;
}
EDIT:
Nun, wenn ich die Popover laden und die NSNotification wird ausgelöst, die Taste aktiviert ist, aber das Problem ist, wenn ich die popover schließen und öffnen, Mein Löschen-Button ist immer noch deaktiviert.
Meine popover Klasse
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if(syncFinished){
_deleteButton.enabled = YES;
}else if(!syncFinished){
_deleteButton.enabled = NO;
}
}
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(showButton)
name:@"syncFinish"
object:nil];
}
- (void) showButton{
syncFinished = YES;
_deleteButton.enabled = YES;
}
Meine zweite Klasse
-(void) someAction{
if(something){
[[NSNotificationCenter defaultCenter] postNotificationName:@"syncFinish"
object:self];
}
Ihre Frage unklar ist. Wo beobachtest du einen BOOL-Wert? Wie sind die beiden Methoden aus diesen beiden Klassen miteinander verbunden? – rmaddy
Sie müssen klarer sein als "erhalten Sie nicht den wahren Wert". Ich schätze, Sie könnten das Wort "Observing" im englischen Sinne des Titels verwenden, während Leser davon ausgehen, dass Sie es in "Key Value Observing" (KVO) meinen. Bearbeiten Sie Ihre Frage, um mehr Details zu erhalten und jemand könnte Ihnen helfen. – CRD
Die Logik in Ihrem Code ist qualvoll. Bitte verstehe, dass 'if (ding)' then 'else' schon' 'thing' 'bedeutet und es nicht nötig ist,' else if (! Ding)' zu setzen. – trojanfoe