0

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 有任何危险)

4

1 回答 1

1

我怀疑这[self.window addSubview:self.navController.view];是问题所在。

大概。你应该这样做:

self.window.rootViewController = self.navController;

仅仅添加视图并不能将您的视图控制器正确地放入层次结构中。有关更多信息,请参阅 WWDC 2011 视图控制器包含视频。

于 2012-06-26T09:11:55.960 回答