2012-06-26 2 views
0

ViewWillAppear 자동으로 호출되지 않습니다. 수동으로 호출해야합니다. ViewWillDisappear이 종종 호출됩니다.내보기 창을 어떻게 알 수 있습니까?

어디서 디버깅해야할지 모르겠다.

사람들이 viewWillAppear을 명시 적으로 호출해야하는 4.1의 응용 프로그램을 만들었 기 때문에 문제가 있다고 생각합니다.

viewWillAppear은 윈도우와의 관계에 따라 호출되므로 내 viewController에 콘센트가 있는지 확인할 수 있습니다.

어떻게해야합니까?

나는 문제가 내 대표 어딘가에 의심 : 나는 의심

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [Crashlytics startWithAPIKey:@"a08863b514ef09558ba82fec070cc7468fdbeeae"]; 
    if(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")) 
    { 
     NSLog(@"NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!"); 
    } 

    [self.window addSubview:self.navController.view]; //This seem to be the problem. I should have specified the viewController and not the view 

    [self.navController pushViewController:self.MainBadgerApplication animated:YES]; 
    //[cachedProperties singleton].lastAnchor =[cachedProperties currentLocation]; 
    [cachedProperties singleton].currentAnchor=[cachedProperties currentLocation]; 
    self.MainBadgerApplication.selectedIndex=0; 
    [BNUtilitiesQuick tabBarController:self.MainBadgerApplication didSelectViewController:self.MainBadgerApplication.selectedViewController]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

그 [self.window의 addSubview : self.navController.view] 문제 야.

또한 iOS5 전에 명시 적으로 viewController를 호출해야한다는 말을 들었습니다. 그래서 나는 [self.window addSubview:self.navController.view]; 문제라고 의심

+0

윈도우의 경우 - self.view.window를 확인할 수 있습니다. 그러나 viewWillAppear을 명시 적으로 호출 할 필요는 없으며 뷰 컨트롤러의 라이프 사이클에서 자동으로 호출합니다. – rishi

+0

명시 적으로 viewWillAppear을 호출하지 않습니다. 그게 문제 야. –

+0

한 가지 확실한 점은 어떤보기 컨트롤러 수명주기를 호출 할 필요가 없다는 것입니다. 내비게이션 컨트롤러 계층에 대한 의심이 있습니다. NSLog (@ "% @", self.navigationController.viewControllers)를 로깅 해 볼 수 있습니다. 거기에있는 뷰 컨트롤러 계층 구조가 무엇인지 확인하십시오. – rishi

답변

1

(내 프로그램에 대한 두 배의 ViewController를 호출 어떤 위험이 싫어) iOS5를하고 ios4에 다른 프로그램을 만들어야합니다.

아마도. 대신 다음을 수행해야합니다.

보기를 추가해도 뷰 컨트롤러가 올바르게 계층 구조에 배치되지 않습니다. 자세한 내용은 WWDC 2011 뷰 컨트롤러 억제 비디오를 참조하십시오.

+0

변경했습니다. 어디 보자. –

관련 문제