0

アプリケーションを介して到達可能性を使用して、インターネット接続の可用性を確認したいと思います。インターネット接続が失われた場合、半透明のカスタムビュー(オーバーレイ)を表示したいと思います(表示されたビューは引き続き表示されます)。...インターネット接続を確認しています。

これは簡単に思えますが、期待どおりに機能させることができません。

到達可能性に関するアップルのドキュメントを読みましたが、ログは正しく機能しているようです。期待どおりにこの設定が正しく行われていることと、接続が復元されたときに透明なビューを作成/非表示にする方法を確認したいと思います。

App Delegate:電話をかけます[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];

しかし、画面に表示されている現在表示されているView Controller / Nav Controllerにこれを追加する方法がわかりませんか?

編集:発生中のエラー: ここに画像の説明を入力してください

4

1 に答える 1

0

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

最初にモーダルビューコントローラにラベルを追加してから、モーダルで表示する必要があります。

于 2013-03-17T20:18:30.977 に答える