ios - 无法推送 View Controller

标签 ios view pushviewcontroller

我试图将一个简单的 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/

相关文章:

ios - Firebase 数据库在批准后保存数据

android - 如何在 Android 中检查字符串中的行数?

Android:如何强制布局或任何 View 在倾斜时具有固定大小?

java - 矩形不更新也不显示颜色

iPhone以编程方式选择Tab并推送 View Controller

ios - 带有数据源的自定义 View 。应该什么时候第一次查询数据源?

android - 如何比较 Android 和 iOS Realm 文件中的 Realm 架构

ios - Mac Catalyst for Mac 菜单栏中的 NSPopover

iphone - 点击按钮时 View 不会被按下 - Iphone dev

iOS:UIViewController 未被推送问题