遇到了个bug,有点乱
(为了区分,第一次push的A控制器成为A1,第二次push的叫A2)
项目里从页面A1push到B,然后B又push到A2,Apush到C,Cpush到D,从D点击按钮pop到A2,最后到A2的时候本该更新数据,但是由于遍历nav子控制器的时候,取到了A控制器的类就pop回A了,但是这个取到的只是入栈的第一个A1,此时pop回的是A1,,本该显示的是A2,所以造成了数据混乱。
解决如下:
NSInteger index = [self.navigationController.viewControllers indexOfObject:self];
if (index > 0) {
UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:index - 1];
if ([vc isKindOfClass:[CardViewController class]]) {
NSMutableArray *vcArr = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[vcArr removeObjectAtIndex:index - 1];
[self.navigationController setViewControllers:vcArr];
}
}
我也不知道我说的这个bug以后我还能不能看明白🤦♀️挺乱的,表达不到位,记录下凑合看叭
项目是前任留的,很多需要优化,目前就在原本基础上改了,回头再优化吧。
网友评论