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

iOS 7 问题 : viewDidDisappear not being called after viewWillDisappear

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

我遇到的问题是,当我尝试使用当前 ViewController 的 iOS7 viewDidDisappear 中的默认返回 swipeGesture 弹出 View Controller 时> 并不总是在 viewWillDisappear 之后被调用。我使用 UINavigationController 作为 rootViewController

在这种情况下,应用程序仍然被触发并且不会收到任何用户输入。有时应用程序崩溃,当我查看日志时:它显示“无法将自身添加为 subview”,并且在崩溃日志中,它显示 EXC_BAD_ACCESS。如何解决这个问题,但是当我在导航栏应用程序中使用后退按钮时正常工作。

- (void)viewWillDisappearBOOL)animated
{
//            [self.navigationController.navigationBar setAlpha:1.0f];
    [self createBarButtonITems];
    self.navigationItem.title = @"Back";
}

- (void)viewDidDisappearBOOL)animated
{
    [self zoomOutTableWithoutAnimation];
}

-(void)zoomOutTableWithoutAnimation
{
    backgroundView.frame = CGRectMake(0,0,320,480);
    backgroundView.transform=CGAffineTransformMakeScale(1, 1);

    sideMenuTableView.transform=CGAffineTransformMakeScale(0.5,0.5);
    sideMenuTableView.frame = CGRectMake(0,150,self.view.frame.size.width/2, self.view.frame.size.height);
    sideMenuTableView.hidden = YES;
}



Best Answer-推荐答案


正如您提到的向后滑动手势,这可能是由于交互式弹回。 正如 WWDC 2013 中提到的, session 使用 View Controller 的自定义转换,您不能假设 viewWillDisappear 后面会跟着 viewDidDisappear。 viewWillAppear 和 viewDidAppear 也是如此。

我不知道你为什么要打电话 [自行创建BarButtonITems] 在 viewWillDisappear 中,您的意思是 viewWillAppear 吗? 无论如何,在我看来 [self createBarButtonITems] 产生了一些副作用。

尝试在 viewWillDisappear 中使用以下代码来撤消副作用:

- (void)viewWillDisappear
{
   [self doSomethingHasSideEffect];
   id <UIViewControllerTransitionCoordinator> coordinator;
        coordinator = [self transitionCoordinator];
        if(coordinator && [coordinator initiallyInteractive]) 
        {
            [coordinator notifyWhenInteractionEndsUsingBlock:
             ^(id <UIViewControllerTransitionCoordinatorContext> ctx) 
             {
                 if(ctx.isCancelled) 
                 {
                     [self undoAnySideEffect]
                 }
             }]; 
        }
}

关于iOS 7 问题 : viewDidDisappear not being called after viewWillDisappear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21038639/

回复

使用道具 举报

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

本版积分规则

关注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