在整个应用程序中使用可达性

时间:2013-03-17 19:58:51

标签: ios ios5 uiview reachability

我想通过应用程序简单地使用Reachability来检查互联网连接的可用性。当互联网连接丢失时,我想显示一个半透明的自定义视图(覆盖)(仍然可以看到后面显示的视图),其中包含一些文本,如...检查Internet连接。

这看起来很简单,但我不能像预期的那样让它工作。

我已阅读有关Reachability的Apple文档,并且日志似乎正常工作。我想确认我是否按预期正确设置了此设置,以及如何在恢复连接时生成透明视图/隐藏视图。

App代表: 我打电话给[self setupReachability];

然后我有这些方法:

- (void)setupReachability {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:ReachabilityChangedNotification object:nil];

    self.internetReach = [Reachability reachabilityForInternetConnection];
    [self.internetReach startNotifier];
    [self checkConnection:internetReach];

}

#pragma mark -
#pragma mark - Reachability 
//Called by Reachability whenever status changes.
- (void) reachabilityChanged: (NSNotification* )note {
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
    [self checkConnection: curReach];
}
-(void)checkConnection: (Reachability*) curReach {
    NetworkStatus netStatus = [curReach currentReachabilityStatus];
        if (netStatus == NotReachable) {
            NSLog(@"inernet reach - not reachable");
        }
}

我知道我可以像这样创建一个模态视图:

 UIView *modalView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 modalView.opaque = NO;
 modalView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];

UILabel *label = [[UILabel alloc] init];
label.text = @"Modal View";
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor clearColor];
label.opaque = NO;
[label sizeToFit];
[modalView addSubview:label];

但我不确定如何将其添加到屏幕上当前显示的任何视图控制器/导航控制器上?

编辑: 发生错误: enter image description here

1 个答案:

答案 0 :(得分:0)

[self.window.rootViewController presentModalViewController:myController animated:YES];

首先需要将标签添加到模态视图控制器,然后以模态方式显示它。