Xcode 9 更新后 pushViewController 不起作用

Posted

技术标签:

【中文标题】Xcode 9 更新后 pushViewController 不起作用【英文标题】:pushViewController doesn't work after an Xcode 9 update 【发布时间】:2017-10-23 08:44:59 【问题描述】:

我使用的是 xib 而不是 storyBord。 问题是当我想更改应用程序上的窗口时。 我可以加载下一个窗口,但我不能用 pushViewController 显示它,我通知你在更新 Xcode 之前它已经工作了。

感谢您的回复 按钮点击方法:

`MesFic *vueMesFic=[[MesFic alloc] initWithNibName:@"MesFic" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:vueMesFic animated:YES];
[vueMesFic release];
vueMesFic=nil;`

我的 appDelegate.m

MyStyleSheet * myStyleSheetInstance = [[MyStyleSheet alloc] init];
[TTStyleSheet setGlobalStyleSheet:myStyleSheetInstance];
[myStyleSheetInstance release];
// Override point for customization after application launch.

//[self.window addSubview:[navigationController view]];

[self.window makeKeyAndVisible];
[window setRootViewController:navigationController];
return YES;

【问题讨论】:

我确定,你在这里遇到了错误[vueMesFic release]; 加入主队列。 确保应用程序窗口有navigationController。 self.navigationController 为零吗?你在vueMesFic=nil; 之后做吗? No self.navigationController 不是 nil 【参考方案1】:

如果您使用的是navigationController,请确保您已将navigationController 设置为您的根控制器。

MyStyleSheet * myStyleSheetInstance = [[MyStyleSheet alloc] init];

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myStyleSheetInstance];
[window setRootViewController:navigationController];

在这种情况下,您可以使用 self.navigation 进行导航

[self.navigationController pushViewController:vueMesFic animated:YES];

如果你不愿意使用 UINavigation,

 MyStyleSheet * myStyleSheetInstance = [[MyStyleSheet alloc] init];
[window setRootViewController:myStyleSheetInstance];

然后使用

[self presentViewController:viewController animated:YES completion:nil];

也许对你有帮助

【讨论】:

以上是关于Xcode 9 更新后 pushViewController 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将代码更新到 xcode 9 和 swift 4 后应用程序崩溃

更新 xcode 9 和 iOS 11.0 后有人遇到 UI 问题吗?

将 xcode 更新到 9.4 后,react native ios build 失败。错误是“NSInteger”类型的值

导航 UI 未使用 Xcode 9 更新

Xcode 更新后 Xcode 服务器不工作

自 Xcode 9.2 更新以来,一个子视图中没有标签栏