我需要在按下tabBar按钮后运行方法,但是在视图转换之前。并在视图转换后运行第二种方法。目标是添加退出/输入效果。
我尝试使用
ViewDidAppear
和
ViewWillDisapear
但它不起作用。
另外,
- (void)tabBarController:(UITabBarController *)tabBarController
didSelectViewController:(UIViewController *)viewController
似乎不允许在切换视图之前/之后执行动画。
有没有人知道如何做到这一点?
提前致谢。
答案 0 :(得分:0)
试试这个,看看它是否有效。对于之前的动画,实现tabBarController:shouldSelectViewController:和put 你的动画代码。在动画的完成块中返回YES,因此切换到新选项卡将被延迟,直到动画结束。后动画应放在您要移动到的标签的viewDidAppear方法中。
编辑后:
它比上面的答案稍微复杂一点,所以必须通过调用tabBarController中的方法来完成:shouldSelectViewController:执行动画,然后选择视图控制器移动到 - 通过选择在代码中,委托方法不会再次被调用。这是我只是在动画块中移动视图的示例
-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
[self completeTabChangeToController:viewController];
return NO;
}
-(void)completeTabChangeToController:(UIViewController *) controller {
self.bottomCon.constant = 50;
[UIView animateWithDuration:.5 animations:^{
[self.view layoutIfNeeded];
} completion:^(BOOL finished) {
[self.tabBarController setSelectedViewController:controller];
}];
}