ViewWillAppear
никогда не вызывается автоматически. Мне нужно называть их вручную. ViewWillDisappear
часто называют.Как узнать окно моего представления?
Я не знаю, где отлаживать это.
Я полагаю, проблема в том, что я создал приложение на 4.1, где люди должны называть viewWillAppear
явно.
Я полагаю, потому что 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 явно. Поэтому я должен создать другую программу для iOS5 и iOS4 (не так, как есть опасность в призыве ViewController дважды для моей программы)
Для окна вы можете проверить - self.view.window. Но вам не нужно явно вызывать viewWillAppear, он автоматически отвечает на жизненный цикл контроллера вида. – rishi
Он явно не вызывает viewWillAppear. Это проблема. –
одна вещь, для которой вам нужно быть уверенным, что вам никогда не нужно вызывать какой-либо жизненный цикл контроллера. Я подозреваю, что на иерархии контроллера навигации вы можете попробовать зарегистрировать NSLog (@ "% @", self.navigationController.viewControllers); и проверьте, что представляет собой иерархия представлений. – rishi