UITabBarを使用するアプリがあり、インターネットからコンテンツをダウンロードする必要があるため、Reachabilityクラスを使用することにしました。それを起動すると、メソッドは大いに機能しますが、すべてのジョブが完了するのを待たずに別のtabBarインデックスに移動すると、最初のインデックスに戻り、アプリは保持されて移動しません。ここにいくつかのコードがあります:
- (void)viewWillAppear:(BOOL)animated {
[[self.navigationController navigationBar] setHidden:YES];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];
[internetReachable startNotifier];
[hostReachable startNotifier];
}
- (void)checkNetworkStatus:(NSNotification *)notice {
BOOL flag;
UIAlertView *alert;
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
alert = [[UIAlertView alloc] initWithTitle:@"Attenzione!" message:@"Non ci sono connessioni disponibili a internet: impossibile scaricare i dati!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
switch ( internetStatus ) {
case NotReachable:
self.internetActive = NO;
flag = NO;
break;
case ReachableViaWiFi:
self.internetActive = YES;
flag = YES;
break;
case ReachableViaWWAN:
self.internetActive = YES;
flag = YES;
break;
}
if ( flag )
[NSThread detachNewThreadSelector:@selector(loadDataFromInternet) toTarget:self withObject:nil];
else {
[alert show];
[self.spinner stopAnimating];
}
[alert release];
}
私はあなたが必要とするかもしれない他のすべてを貼り付けます。