2011-12-24 5 views
2

私の最初のビュー(ナビゲーションコントローラをロードするタブバーコントローラ)でインターネット接続を確認します。デバイスにアクティブな接続がない場合、アクティブなインターネット接続が必要であり、再試行ボタンが表示されたビューを読み込みます。ナビゲーションベースアプリケーション - 到達可能性をチェックする方法と警告表示を表示する

私の問題は次のとおりです。 最初のビューはナビゲーションベースなので、次のコードを使用すると警告ビューが読み込まれます。最初のビューに戻るボタンがあります。したがって、戻るボタンを押すと、コンテンツを表示するために接続が必要なため、最初のビューに戻ることができます。私の場合、ビューの読み込みは解決策ではないようです。また、再試行ボタンをクリックすると、ユーザーは初期ビューに戻り、再度アラートビューが読み込まれます。それは狂ったループに入り、繰り返しのナビゲーションバーが付いています。ここ

は私のリダイレクトコードです:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    if ([Connection isConnected]) {NSLog(@"connected");} 
    else { 
     Alerter *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Alerter"]; 
     [self.navigationController pushViewController:controller animated:NO]; 

    } 

誰もがこれを処理するためのより良い方法をお勧めしますか?

答えて

1

ナビゲーションコントローラをロードする前に到達可能性をチェックし、インターネット接続がない場合、メッセージと共にUIAlertビューを表示できます。

+0

アドバイスをいただきありがとうございますが、UIalertビューがあまりうまく見えないので、私はビューを使いたいと思っていました。しかし、私はナビゲーションコントローラの前にこれを行うことをお勧めします。 –

+0

だから? UIAlertビューの代わりにモーダルビューをポップアップします。要点は、ネットワークに到達可能かどうかをコントローラがチェックし、ナビゲーションコントローラまたは別のビューを表示するかどうかです。 – Abizern

0

アラータビューコントローラのボタンを非表示にすることができます。インターネットに接続されている場合を除き、ユーザーはそのままにしないでください。 [self.navigationItem setHidesBackBarItem:YES];

+0

また、モーダルビューコントローラとして表示することもできます。 – dariaa

+0

私はモーダルを試みましたが、再試行ボタンが機能しませんでした。 –

+0

戻るボタンを隠すことで、問題をある程度解決できます。反復ナプバーはもう一つの問題です。私はこれに対処する別の方法がなければならないと思います。ビューを読み込む代わりに –

関連する問題