2016-08-27 1 views
0

J'ai ajouté le code suivant à la viewDidLoad de mon contrôleur de vue:IOS Reachibility dans l'application entière et juste sur le point de vue charge

let reachability: Reachability 
     do { 
      reachability = try Reachability.reachabilityForInternetConnection() 
     } catch { 
      print("Unable to create Reachability") 
      return 
     } 

     reachability.whenReachable = { reachability in 
      // this is called on a background thread, but UI updates must 
      // be on the main thread, like this: 
      dispatch_async(dispatch_get_main_queue()) { 
       if reachability.isReachableViaWiFi() { 
        print("Reachable via WiFi") 
       } else { 
        print("Reachable via Cellular") 
       } 
      } 
     } 
     reachability.whenUnreachable = { reachability in 
      // this is called on a background thread, but UI updates must 
      // be on the main thread, like this: 
      dispatch_async(dispatch_get_main_queue()) { 
       print("Not reachable") 
      } 
     } 

     do { 
      try reachability.startNotifier() 

     } catch { 
      print("Unable to start notifier") 
     } 

Il m'en informer, lorsque la vue des charges mais pas lorsque l'état changements après la charge. Je me demande comment étendre ceci afin que je puisse avoir une notification n'importe où dans l'application et pas seulement quand la vue se charge car Internet peut revenir après le chargement d'une vue.

Merci

+0

Ai-je tort ou comment pouvez-vous déclarer une constante avec son type mais sans la valeur? –

Répondre

0

Vous devez déclarer la variable comme joignabilité variable d'instance et non seulement comme variable locale dans une fonction. Vous pouvez également utiliser les notifications pour rendre les informations disponibles dans votre application. Assurez-vous simplement que l'instance contenant la variable d'accessibilité vit pendant le cycle de vie de votre application.

0

commencez l'accessibilité dans AppDelegate et faites-le notifier à tous les observateurs enregistrés créant et affichant une notification, ainsi vous pouvez enregistrer chaque contrôleur dont vous avez besoin, comme "BostonMacOSX" suggéré.

+0

tout instructino sur la façon de le faire .... en cours de développement depuis quelques semaines dans iOS/swift – BostonMacOSX

0

Je vous recommande de créer quelque chose dans le style d'un contrôleur de connectivité qui gère tous les événements liés à l'accessibilité & contient l'instance elle-même. Ensuite, ce contrôleur peut déclencher des événements sur tous les contrôleurs de vue d'écoute concernant les modifications de la connectivité Internet. Initialiser et démarrer le notificateur d'accessibilité dans votre délégué d'application après didFinishLaunchingWithOptions

+0

Je déplace le bloc entier au délégué de l'application que vous avez suggéré. Est-ce suffisant pour "centraliser" les choses? – BostonMacOSX