ios 弹出动画在UITabbarController的第一个UINavigationController中不工作

ncecgwcz  于 2022-11-26  发布在  iOS
关注(0)|答案(2)|浏览(120)

我不知道我的代码有什么问题。我已经成功地开发了应用程序,所有的事情都很好,除了当我第一次启动应用程序时,在第一个导航控制器中,流行动画不工作。看起来Pop without animation。当我改变选项卡并回到第一个选项卡时,它工作得很好。
我试图找出问题,因为星期。但不能得到成功,因为冗长的代码。我已经尝试了同样的动画与创建Tabbar Demo和它的工作罚款。
我应用程序具有以下层次结构

UINavigationController --> UIViewController --> UITabbarController --> Four UINavigationController --> UIViewControlle.

我已经在我的storyboard中采取了UITabbarController

2skhul33

2skhul331#

我知道我问了这个问题,也提供了同样的解决方案。我问过这个问题很久以前,我没有得到任何解决方案,因为有不合逻辑的错误。不是每个Tabbar基础应用程序都有相同的。在这里我添加的解决方案是长时间调试的结果,我发现即使是单行可以打破你的项目。
实际上,我已经从故事板中添加了UITabbarController,并以编程方式创建了UITabbarController类,并在storyboard中使用UITabbarController对其进行了类型转换。
这里我的问题是,我忘了写[super viewDidAppear:animated];-(void)viewDidAppear:(BOOL)animated方法。所以我会打破流行动画第一次,然后它会工作得很好。
在得到这个解决方案后,即使是我也不知道这一行是如何影响整个代码的。但我不想让其他人浪费时间去发现这样的单行(意外问题)问题。所以在这里我添加了这段代码。

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
}
ibrsph3r

ibrsph3r2#

适用于斯威夫特5
取决于@Jatin Patel - JP的回答
为TabBarController创建自定义类
将此代码添加到UITabBarController文件中

class MyTabBarController: UITabBarController {
  override func viewDidLoad() {
      super.viewDidLoad()
  }

  override func viewDidAppear(_ animated: Bool) {
      super.viewDidAppear(animated)
   }
 }

相关问题