我试图将一个简单的 View 推送到我当前的 View 上,但它似乎不起作用。
在我的应用委托(delegate)中我做了:
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;
然后在我的第一个 View Controller 中:
SecondPageViewController *secondView = [[SecondPageViewController alloc] init];
[secondView setTitle:@"What do you want?"];
[self.navigationController pushViewController:secondView animated:YES];
但似乎什么也没有发生。我在 secondviewcontroller 的 init 中放置了一个 nslog 语句,我可以看到它,但没有 View 。有人可以帮忙吗?
最佳答案
您的导航 Controller 没有所有者。当您到达应用委托(delegate)中的 didFinishLaunchingWithOptions 方法的末尾时,导航 Controller 将被释放。不要将其 View 添加到窗口,而是将其设置为 Root View Controller :
self.window.rootViewController = navController;
编辑:我猜上面的陈述可能不正确,这取决于您是否使用 ARC。如果没有 ARC,您只会泄露导航 Controller ,这可能很好,因为您将在应用程序的整个生命周期中使用它。
关于ios - 无法推送 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10940756/