美文网首页
iOS 避免多次push到同一界面

iOS 避免多次push到同一界面

作者: 夏天爱西瓜汁 | 来源:发表于2019-03-21 15:00 被阅读0次

    遇到了个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以后我还能不能看明白🤦‍♀️挺乱的,表达不到位,记录下凑合看叭
    项目是前任留的,很多需要优化,目前就在原本基础上改了,回头再优化吧。

    相关文章

      网友评论

          本文标题:iOS 避免多次push到同一界面

          本文链接:https://www.haomeiwen.com/subject/jpnqvqtx.html