【发布时间】:2016-08-22 01:44:30
【问题描述】:
我想在我的 Popover 类中隐藏我的按钮,只要我在另一个类中的 bool 值为 false,但问题是我没有得到“TRUE”值。
我的第一堂课
-(void) hideButton{
finished = _secondVC.finished;
BOOL isRunning = !finished;
if(isRunning){
_deleteButton.hidden = YES;
}else if(finished){
_deleteButton.hidden = NO;
}
}
我在 ViewWillAppear 函数中调用了 hideButton 方法。
我的第二课
-(void) someAction{
if(something){
self.finished = YES;
}
编辑:
现在,如果我加载 Popover 并且 NSNotification 被触发,则按钮已启用,但问题是,如果我关闭并打开 popover,我的删除按钮仍处于禁用状态。
我的 PopOver 类
- (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;
}
我的第二课
-(void) someAction{
if(something){
[[NSNotificationCenter defaultCenter] postNotificationName:@"syncFinish"
object:self];
}
【问题讨论】:
-
您的问题不清楚。您在哪里观察到
BOOL值?这两个类中的两个方法是如何连接的? -
你需要比“没有得到真正的价值”更清楚。我猜你可能在标题中使用了英文意义上的“Observing”这个词,而读者假设你的意思是它在“Key value Observing”(KVO)中的技术含义。编辑您的问题以提供更多详细信息,有人可能会为您提供帮助。
-
你代码中的逻辑很折磨人。请理解
if (thing)然后else已经表示!thing,无需输入else if (!thing)。
标签: ios objective-c boolean observers