实现的思路如下:
1.先是接口提前请求,结果异步缓存。
2.生成tabbarcontroller的时候,把固定的子控制器提前加载,以通知或者block方法把要添加的子控制器传入。
3.以原有控制器数组为准,遍历排序,找到适当的位置insert进去,然后重置tabbarcontroller整个数组,整个过程要注意异步主线程进行。
4.注意再次刷新接口的时候,只做排序操作,注意不要重复添加。
以下附上关键代码:
-(void)insertChildControllerWithModel:(NSNotification *)notification {
NewFunctionModel * model = (NewFunctionModel *)notification.object;
if ([self isUrlAddress:model.event]) {
__block BOOL needAdd = YES;
for (UINavigationController *vc in self.childViewControllers) {
if ([vc.topViewController isKindOfClass:[WebViewBaseViewController class]]) {
needAdd = NO;
}
}
if (needAdd == YES) {
WebViewBaseViewController *webVC = [[WebViewBaseViewController alloc]init];
webVC.requestUrl = model.event;
UINavigationController* nav = [[UINavigationController all