需求:
tabbar默认加载A界面,点击了某一按钮/请求了某一个接口后默认加载B界面
1⃣️
错误思路?:
在启动时请求接口,根据请求的接口判断当前需要加载的vc
错误思路原因?:
网络请求再快的情况下都需要时间,还要考虑网络连接超时界面会持续黑屏,请求失败时还需对应处理失败展示,总之就是启动时会黑屏。
2⃣️
正确做法?:
按需加载
正确思路?:
新建一个父vc,在父vc里处理加载的子vc,子view,请求改变状态时隐藏当前正在展示的view,下面贴代码示例
launch.m(appdelegate.m)
// 注意这里的步骤,先设置tabbar,再发送通知,不然发送时监听通知对象还是nill,是接受不到通知的,对这里还有疑问的小伙伴可移步去搜一下通知的使用。
JTTabBarController *tabbarVc = [[JTTabBarController alloc] init];
keyWindow.rootViewController = tabbarVc;
keyWindow.backgroundColor = [UIColor whiteColor];
[keyWindow makeKeyAndVisible];
// 请求订单状态,改变当前加载界面
[self launcherRequestWithScanOrder:^(BOOL res,NSInteger status) {
// 发送通知
[[NSNotificationCenter defaultCenter] postNotification