2012-03-16 2 views
0

내 프로젝트에서 Reachability API를 사용하고 있습니다. 나는
Reachability API Documentation으로 주어진 코드 예제를 따랐다. 다음과 같은 내 응용 프로그램 위임 내가 구현 한 아래 applicationDidFinishLaunching 방법에kNetworkReachabilityChanged Reachability API에 대한 알림

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

    // Observe the kNetworkReachabilityChangedNotification. When that notification is posted, the 
    // method "reachabilityChanged" will be called. 
    [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; 

    hostReach = [[Reachability reachabilityWithHostName: NSLocalizedString(@"SERVICE_HOST_URL", nil)] retain]; 
    [hostReach startNotifier]; 
    [self updateReachabilityStatus:hostReach]; 

    self.rootViewController = [[SearchRootViewController alloc] initWithNibName:@"SearchRootView" bundle:nil]; 
    self.detailViewController = [[SearchDetailViewController alloc] initWithNibName:@"SearchView" bundle:nil]; 

    UINavigationController *rootViewNavigationController = [[UINavigationController alloc] initWithRootViewController:self.rootViewController]; 
    UINavigationController *detailViewnavigationController = [[UINavigationController alloc] initWithRootViewController:self.detailViewController]; 

    self.splitViewController = [[UISplitViewController alloc] init]; 
    self.splitViewController.viewControllers = [NSArray arrayWithObjects:rootViewNavigationController, detailViewnavigationController, nil]; 

    [rootViewNavigationController release]; 
    [detailViewnavigationController release]; 

    self.splitViewController.delegate = self.detailViewController; 

    [self.detailViewController setLeftViewController:self.rootViewController]; 

    [self.window addSubview:[self.splitViewController view]]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

언제이 kNetworkReachabilityChangedNotification은 게시? 내 detailViewController 뷰가 나타날 때까지 게시되지 않는 것으로 나타났습니다.

하지만보기가 나타나기 전에 네트워크 상태를 알고 싶습니다. 도움이 필요하다는 것을 알기 위해 도움이 필요하십니까 ?? 그렇다면, 어떻게?

그것은 연결이 가능한 것이 무엇인지 네트워크를 결정하는 데 시간이 약간 걸릴 수 있습니다

답변

2

고맙습니다 : 알림을 생성하는 시작 도달 가능성을 요구하고있다, 그러나 즉시 뷰 컨트롤러를 표시 ... 그리고 당신은 또한 유일한보기를 만들 컨트롤러 도달 가능성 알림을 시작한 후보기 컨트롤러가 인스턴스화되기 전에 완전히 알림이 전송됩니다. .

더 나은 접근 방법은 네트워크 상태를 설정하는 동안 사용할 수있는 보류 뷰를 갖는 것입니다.