QMUI_iOS icon indicating copy to clipboard operation
QMUI_iOS copied to clipboard

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

Open tikejc opened this issue 2 years ago • 2 comments

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; }

这个怎么解决????

tikejc avatar Sep 27 '23 17:09 tikejc

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

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

MoLice avatar Oct 07 '23 15:10 MoLice

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

JYHang avatar Feb 21 '24 02:02 JYHang