Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

纯代码开发,window!.rootViewController = UINavigationController(rootViewController: MainController()) 方式跳转,项目崩溃 #1528

Open
tikejc opened this issue Sep 27, 2023 · 2 comments
Labels

Comments

@tikejc
Copy link

tikejc commented Sep 27, 2023

1、MainController 实现了UITabBarController
class MainController: UITabBarController { }
2、QMUIKit:版本号:4.7.0

3、AppDelegate类里直接跳转到MainController(使用的是UINavigationController方式跳转)
window = UIWindow(frame: UIScreen.main.bounds)
window!.rootViewController = UINavigationController(rootViewController: MainController())
window!.makeKeyAndVisible()

4、项目直接崩溃,出错位置:UINavigationController+QMUI.m 类 203行:
if (!willPushActually) {
QMUIAssert(NO, @"UINavigationController (QMUI)", @"调用了 pushViewController 但实际上没 push 成功,viewController:%@", viewController);
callSuperBlock();
return;
}

这个怎么解决????

@MoLice MoLice added the bug label Oct 7, 2023
@MoLice
Copy link
Collaborator

MoLice commented Oct 7, 2023

当 vc 为 UITabBarController 时,willPushActually 为 NO,所以命中了 assert。

虽然不推荐将 UITabBarController 作为 UINavigationController 的 childViewController 来使用,但也不能说这么用就是错的,所以后续会把这个判断条件去除。目前建议先本地注释掉。

@JYHang
Copy link

JYHang commented Feb 21, 2024

同样遇到了这个问题,将 UITabBarController 作为 UINavigationController 的 childViewController 有的场景更为灵活一些,没必要加![viewController isKindOfClass:UITabBarController.class]这个判断

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants