我在 NavigationController 中有 2 个 UIViewController。
第一个,A,在 tableView 顶部只有一个 UISearchBar,作为 tableHeader。第二个,B,在屏幕的上部有一个视图(我们称它为自定义 TableHeader)和该视图下方的一个表格。
我想在从 UIViewController A 推送到 UIViewControllerB 时模拟模态 transitionFlipFromRight,并在用户点击 navigationItem.backBarButtonItem 从 UIViewController B 弹出到 UIViewController A 时模拟模态 transitionFlipFromLeft。
推侧没问题:
UIViewController *vcB = [UIViewController alloc] init];
[self.navigationController pushViewController: vcB animated: NO];
[UIView transitionWithView:self.navigationController.view
duration:0.8
options:UIViewAnimationOptionTransitionFlipFromRight
animations:nil
completion:nil];
它按预期工作。
我在实现弹出时遇到问题,从 UIViewController B 切换回 UIViewController A。
我在 UIViewController B 中添加了这段代码:
-(void) viewWillDisappear: (BOOL) animated
{
[super viewWilDisappear: NO]
[UIView transitionWithView:self.navigationController.view
duration:0.8
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:nil];
}
我可以看到翻转,但我对结果不满意,因为在从 B 切换到 AI 后的几分之一秒内,仍然可以看到 B 自定义 tableHeader,从左边框移动了 10 个点。
我应该在 viewWillDisappear 中管理从 B 到 A 的过渡,还是我这样做完全错误?如果我错了,处理弹出动画的正确方法是什么?
谢谢
尼古拉