我正在尝试使用后通知,但无法正确实现它。这就是我所拥有的:
在ViewControllerOne.m中
NSLog(@"PostNotification");
[[NSNotificationCenter defaultCenter] postNotificationName:@"Connectivity" object:nil];
在ViewControllerTwo.m中
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"Added Obeserver");
[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(connectedTo:) name:@"Connectivity" object: nil];
}
-(void)connectedTo:(NSNotification *)notification
{
m_connectivity = @"Connected";
}
似乎connectedTo函数没有被调用。这是因为:
在代码的另一部分:
if ([m_connectivity isEqualToString:@"Connected"])
{
NSLog(@"Connected");
}
else
{
NSLog(@"NotConnected");
}
不知道我的错误是什么。需要一些指导...谢谢..
编辑:
ViewControllerOne.m是其他视图控制器子类所依赖的类。它检查连接性,并且在连接时,我需要通知其他viewcontroller(ViewControllerTwo)我已连接,并根据连接性采取必要的措施。因此,当连接性发生变化时,通知将被发布,但此时的viewcontroller可能尚未初始化...
最佳答案
由于ViewControllerTwo是ViewControllerOne的子类,因此ViewControllerOne中可以有一个根据连接状态返回BOOL的方法。您可以在ViewControllerTwo的viewDidAppear方法中调用此方法,以在ViewControllerTwo首次出现在屏幕上时检查该状态。如果需要,您仍可以使用通知来在连接状态更改时更新ViewControllerTwo。或者,只要您要执行任何需要连接的操作,就可以调用此方法。