zoukankan      html  css  js  c++  java
  • iOS BUG: Unbalanced calls to begin/end appearance transitions for <XXXViewController: 0x7fcea3730650>.

    自定义TabBarController Push下一级Controller时 会报这样的错误:Unbalanced calls to begin/end appearance transitions for <XXXViewController: 0x7fcea3730650>.

    网上的一些回答,都说是动画引起的,解决方法就是,加一个BOOL型的变量,检查是否在做动画。

        if (transiting) {
            return;
        }
        transiting = YES;
        [self transitionFromViewController:_currentVC toViewController:newVC duration:0.5 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
            
        } completion:^(BOOL finished) {
            
            transiting = NO;
        }];

    这样就不会出现刚才说的那个bug了。 

    但是,这并没有解决我的问题!

    所以真正的答案是

    自定义了TabBarController 之后必须实现以下

    -(void)viewWillAppear:(BOOL)animated
    {
        [self.selectedViewController beginAppearanceTransition: YES animated: animated];
    }

    -(void) viewDidAppear:(BOOL)animated
    {
        [self.selectedViewController endAppearanceTransition];
    }

    -(void) viewWillDisappear:(BOOL)animated
    {
        [self.selectedViewController beginAppearanceTransition: NO animated: animated];
    }

    -(void) viewDidDisappear:(BOOL)animated
    {
        [self.selectedViewController endAppearanceTransition];

  • 相关阅读:
    如何把一个一般的git库变成“裸库”?
    MacOSX下杀掉sudo进程
    nginx FastCGI错误Primary script unknown解决办法
    Lua继承userdata
    Unity图文混排
    C++轻量级跨平台文件系统API
    lua_next()
    重载方法匹配算法
    C++模板函数只能全特化不能偏特化
    xcode离线安装包下载
  • 原文地址:https://www.cnblogs.com/jukaiit/p/5661277.html
Copyright © 2011-2022 走看看