对<TSActivityMapVC:0x81b1000>的开始/结束外观转换的不平衡调用

Svy*_*vik 3 iphone cocoa-touch objective-c ios

当我初始化UITabBarController,每个标签包括UINavigationController各UINavigationController包括UIViewController 在当UIViewController我做这样的事情

TSActivityDetailsVC * c = [[TSActivityDetailsVC alloc] initWithNibName:@"TSActivityDetailsVC" bundle:nil];
[self.navigationController pushViewController:c animated:YES];
Run Code Online (Sandbox Code Playgroud)

我有动画,但当我按下后退按钮 - 我没有动画并得到错误

日志:

push view controller
Unbalanced calls to begin/end appearance transitions for <TSActivityMapVC: 0x81b1000>.
back btn pressed
Unbalanced calls to begin/end appearance transitions for <TSActivityDetailsVC: 0x81c85d0>.
Run Code Online (Sandbox Code Playgroud)

初始代码:

-(UITabBarController *) createMainTabBarController{
UITabBarController * tabbarCntr = [[UITabBarController alloc] init];
[tabbarCntr setViewControllers:[NSArray arrayWithObjects:
                                [[UINavigationController alloc] initWithRootViewController:[[TSActivityMapVC alloc] init]],                                    
                                [[UIViewController alloc] init],
                                [[UIViewController alloc] init],
                                [[UIViewController alloc] init],
                                [[UIViewController alloc] init]
                                , nil]];
[tabbarCntr.tabBar setSelectionIndicatorImage:[UIImage imageNamed:@"selection_indicator"]];
[tabbarCntr.tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_background"]];    

return tabbarCntr; 
}
Run Code Online (Sandbox Code Playgroud)

在TSActivityMapVC我的表演

TSActivityDetailsVC * c = [[TSActivityDetailsVC alloc] initWithNibName:@"TSActivityDetailsVC" bundle:nil]; 
[self.navigationController pushViewController:c animated:YES];
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,当我去另一个标签并返回 - 之后 - 一切正常,没有错误

Kai*_*rdt 10

我得到了解决方案!我的子类UITabBarController,忘了叫超级的viewWillAppear.所以UITabBarController没有完成的过渡动画.

这导致了"不平衡的呼叫开始/结束外观"!