• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 使用 iOS 7 滑动导航时导航栏出现故障

[复制链接]
菜鸟教程小白 发表于 2022-12-13 01:42:10 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

当我使用滑动返回上一个 View 时,我的应用出现了奇怪的图形故障。

当我正常滑动并完成滑动手势时,一切正常。

当我取消滑动手势时,即:开始手势但然后向相反方向移动手指以停止手势并停留在当前 View 。

我遇到的问题如果我然后返回上一个屏幕,该 View 的 barbutton 项目与前一个 View 中的 barbutton 项目重叠。

截图: 起点:enter image description here

向后滑动手势和完成手势,转到上一个 View ,正常工作:enter image description here

回扫手势和取消手势,停留在当前屏幕,然后返回上一屏幕,文本按钮重叠:enter image description here

此图形故障仅在强制退出应用并重新启动时才会消失。当然,如果你再次引发故障,它会再次出现。

希望有一些开发人员遇到同样的问题。

编辑,问题原因如下代码:

- (void)resetCacheAndRefreshTableAnimatedBOOL)animated {
    [NSFetchedResultsController deleteCacheWithName:kCDFollowedCacheName];
    [self setSortDescriptorsForFetchRequest:self.fetchedResultsController.fetchRequest];
    NSError *error = nil;
    [self.fetchedResultsController performFetch:&error];
    [self.tableView reloadData];
}

此方法在 ViewWillAppear 中调用。删除方法调用后,问题就消失了。有什么想法吗?



Best Answer-推荐答案


根据 Vikram 的回复和 StackOverflow 的另一个问题设法弄清楚。

所以问题是 [self.tableView reloadData]ViewWillAppear 中被调用。 但是取消滑动时不应重新加载tableview。

此代码可防止在取消滑动时重新加载:

id <UIViewControllerTransitionCoordinator> tc = self.transitionCoordinator;
if (tc && [tc initiallyInteractive])
{
    [tc notifyWhenInteractionEndsUsingBlock:
     ^(id<UIViewControllerTransitionCoordinatorContext> context)
     {
         if (![context isCancelled])
             // not cancelled, do it
             [self resetCacheAndRefreshTableAnimated:YES]; // this will clear the CoreData cache and forces a reload
     }];
}
else // not interactive, do it
    [self resetCacheAndRefreshTableAnimated:YES];       // this will clear the CoreData cache and forces a reload

关于ios - 使用 iOS 7 滑动导航时导航栏出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25701443/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap