2010-07-10 3 views
1

J'ai un UITableView qui est rempli avec des données s'il y a une connexion réseau en direct. Quand il n'y a pas de connexion, je voudrais ajouter une vue à la vue actuelle qui dira Pas de connexion Internet. Semblable à l'application Photos lorsqu'il n'y a pas de photos synchronisées. Je ne suis pas sûr de comment je peux accomplir ceci.Comment ajouter une sous-vue de UITableView?

Répondre

0

Ce n'est pas exactement ce que vous voulez, mais vous pouvez avoir une vue de table "Données vides", avec suffisamment de cellules pour permettre le défilement, et la première cellule contenant un message comme "Pas de connexion réseau". L'alternative consiste à placer la vue de table dans une autre vue (parent) et à inverser cette vue de table (enfant) pour une vue vide lorsqu'il n'y a pas de réseau.

0

Généralement Apple suggère UIAlertView pour cela. Les exemples du centre de développement ont généralement UIAlertViews, tout simplement parce qu'Apple considère que le manque de disponibilité du réseau dans les applications nécessitant un réseau est suffisamment important pour alerter l'utilisateur.

J'utilise les éléments suivants (en gardant intact le droit d'auteur bien sûr)

dans UIAlertView+Helper.h:

// 
// UIAlertViewHelper.h 
// CocoaHelpers 
// 
// Created by Shaun Harrison on 10/16/08. 
// Copyright 2008 enormego. All rights reserved. 
// 

#import <UIKit/UIKit.h> 

/* 
* Convenience method to throw a quick alert to the user 
*/ 
void UIAlertViewQuick(NSString* title, NSString* message, NSString* dismissButtonTitle); 

@interface UIAlertView (Helper) 

@end 

dans UIAlertView+Helper.m:

// 
// UIAlertViewHelper.m 
// CocoaHelpers 
// 
// Created by Shaun Harrison on 10/16/08. 
// Copyright 2008 enormego. All rights reserved. 
// 

#import "UIAlertView+Helper.h" 

void UIAlertViewQuick(NSString* title, NSString* message, NSString* dismissButtonTitle) { 
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:title 
                message:message 
                delegate:nil 
              cancelButtonTitle:dismissButtonTitle 
              otherButtonTitles:nil 
          ]; 
    [alert show]; 
    [alert autorelease]; 
} 


@implementation UIAlertView (Helper) 

@end 

puis dans votre propre application - en utilisant joignabilité, bien sûr. Par exemple:

- (void) updateInterfaceWithReachability: (Reachability*) curReach;

UIAlertViewQuick(@"You're offline!", @"Sorry, it looks like you lost your Internet connection. Please reconnect and try again.", @"OK");      

J'utilise cette aide dans plusieurs de mes applications cos il est assez facile de présenter un alertView à l'utilisateur.

J'espère que ça aide!

Questions connexes