I would choose a little different approach. Why not create a UIViewController Subclass that handles the internet connection notifications for you? You could do something like this half-pseudo code. I just wrote this code out of my head. It may contain errors. So don't just copy & paste.
@interface SMInternetBaseViewController : UIViewController {
SMOverlay* overlay;
}
@end
@interface SMInternetBaseViewController()
- (void)reachabilityChanged:(NSNotification *) not;
@end
@implementation SMInternetBaseViewController
- (id)init {
self = [super init];
if (self) {
// Register here the method reachabilityChanged for Reachability notifications
}
return self;
}
- (void)reachabilityChanged:(NSNotification *) not
{
// Define here how to behave for different notifications
if (__NO_INTERNET__) {
// Add an overlay to the view.
if (!overlay) {
overlay = [[SMOverlay alloc] init];
}
[self.view addSubview:overlay];
}
if (__AGAIN_INTERNET__) {
[overlay removeFromSuperview];
}
}
@end
Then you could easily make all your view controllers subclass of this SMInternetBaseViewController
and you don't have to care about it anymore.