私は多くの同様の質問を見つけましたが、とにかく私の問題の解決策を見つけることができませんでした. したがって、私のアプリ (tabView で構成されています) は、最初の起動後にサーバーからデータをダウンロードする必要があります。これを実行するために、Reachability.h/m と NSNotification defaultCenter を使用してインターネット接続をチェックするモーダル ビューコントローラーを呼び出します。インターネットに接続できる場合、ダウンロードが開始され、データが保存されます。完了したら、モーダルで開いたビューコントローラーを閉じたいのですが、何度もリロードしています。私はこれにほぼ2日間固執しています、助けてください:)
これは私のコードの一部です: 最初の ViewController で
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
//checking for data if not calls modalViewController
if(firstStart){
[self performSegueWithIdentifier:@"startDownload" sender:self];
}
}
秒で(モーダルViewController)
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES];
// check for internet connection
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
// check if a pathway to a random host exists
hostReachable = [Reachability reachabilityWithHostName: @"www.apple.com"];
[hostReachable startNotifier];
}
インターネット接続が存在する場合、checkNetworkStatus でインターネット接続のチェックが行われ、JSON のダウンロードと解析が実行され、最後に Close メソッドが呼び出されます
-(void)Close
{
[self dismissViewControllerAnimated:YES completion:nil];
}
この呼び出しの後、画面は最初の ViewController に移動し、すぐに 2 番目に変わり、すべての処理が再び実行されます。