我正在尝试将一个简单的视图推送到我当前的视图,但它似乎不起作用。
在我的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语句,我可以看到,但没有视图。有人可以帮忙吗?
答案 0 :(得分:1)
您的导航控制器没有所有者。当您到达app delegate中的didFinishLaunchingWithOptions方法的末尾时,将取消分配导航控制器。不要将其视图添加到窗口,而是将其设置为根视图控制器:
self.window.rootViewController = navController;
编辑:我猜上面的陈述可能不正确,取决于你是否使用ARC。如果没有ARC,你只需要泄漏导航控制器,这可能会很好,因为你将在应用程序的整个生命周期中使用它。