1

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

在我的应用程序委托中,我做了:

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];

但似乎什么也没发生。我在 secondviewcontroller 的 init 中放了一个 nslog 语句,我可以看到,但没有视图。有人可以帮忙吗?

4

1 回答 1

1

您的导航控制器没有所有者。当您到达应用程序委托中的 didFinishLaunchingWithOptions 方法的末尾时,导航控制器将被释放。与其将其视图添加到窗口,不如将其设置为根视图控制器:

self.window.rootViewController = navController;

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

于 2012-06-07T23:15:45.417 回答