Como otros mencionaron, el Reachablity sample es un buen lugar para comenzar, sin embargo, sus respuestas no lo explican lo suficiente para mi gusto. Dentro de la muestra de Reacabilidad, el código está disperso y no le muestra cómo manejar el caso más simple. Para el caso más simple (sin escuchar los cambios de estado) puedo ahorrarte el esfuerzo de tener que cotejar las líneas correctas tú mismo.
Copiar la clase de accesibilidad de la muestra Reachablity en su proyecto, incluirlo en su clase, y use el siguiente código:
if ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != ReachableViaWiFi) {
//Code to execute if WiFi is not enabled
}