美文网首页
popViewController

popViewController

作者: Leon1024 | 来源:发表于2019-03-13 21:17 被阅读0次

    popViewController返回的时候,
    [self.navigationController popViewControllerAnimated:YES];
    这个命令是异步在主线程执行的,会先执行命令之后的同步任务。

    - (void)goback {
        [self.navigationController popViewControllerAnimated:YES];
        [self.delegate someDelegateAction];
        NSLog(@"------当前控制器代理完成后%s", __FUNCTION__);
    }
    
    // 打印:
    调用了上层控制器的代理任务-[ViewController someDelegateAction]
     ------当前控制器代理完成后-[VCB goback]
    -----当前控制器-[VCB viewWillDisappear:]
    >>>上层控制器-[ViewController viewWillAppear:]
     -----当前控制器-[VCB viewDidDisappear:]
     >>>上层控制器-[ViewController viewDidAppear:]
     -----当前控制器-[VCB dealloc]
    

    当前控制器总能在相关同步任务执行完后才销毁。

    而且,如果在上层控制器的代理方法中,push出另外一个控制器的话。也会在push出来的新控制器 viewDidLoad 后,当前控制器才销毁。因为代理方法中,异步提交push新控制器的任务比当前控制器最后异步提交dealloc靠前。

    相关文章

      网友评论

          本文标题:popViewController

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