无法推送视图控制器

时间:2012-06-07 22:31:19

标签: ios view pushviewcontroller

我正在尝试将一个简单的视图推送到我当前的视图,但它似乎不起作用。

在我的app委托中,我做了:

self.window.backgroundColor = [UIColor whiteColor];
__firstVC = [[FirstPageViewController alloc]initWithNibName:nil bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:__firstVC];
[self.window addSubview:[navController view]];
[self.window makeKeyAndVisible]; Return YES;

然后在我的第一个视图控制器中:

SecondPageViewController *secondView = [[SecondPageViewController alloc] init];
    [secondView setTitle:@"What do you want?"];
    [self.navigationController pushViewController:secondView animated:YES];

但似乎没有任何事情发生。我在initviewcontroller的init中放了一个nslog语句,我可以看到,但没有视图。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您的导航控制器没有所有者。当您到达app delegate中的didFinishLaunchingWithOptions方法的末尾时,将取消分配导航控制器。不要将其视图添加到窗口,而是将其设置为根视图控制器:

self.window.rootViewController = navController;

编辑:我猜上面的陈述可能不正确,取决于你是否使用ARC。如果没有ARC,你只需要泄漏导航控制器,这可能会很好,因为你将在应用程序的整个生命周期中使用它。