我正在尝试使用后通知,但无法正确实现它。这就是我所拥有的:

在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。或者,只要您要执行任何需要连接的操作,就可以调用此方法。

08-05 22:29