【发布时间】:2012-01-03 19:43:56
【问题描述】:
我有两个 UITableViewController,因此当我在第一个 UITableViewController 上单击下一步时,第二个 UITableViewController 会被推送到导航堆栈上并像正常一样为过渡设置动画。我想这样做,所以当我按下下一步时,只有视图动画,而导航栏没有(保持不变)。我已经非常接近使用下面的代码做到这一点:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
CATransition *navTransition = [CATransition animation];
navTransition.duration = .5;
navTransition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
navTransition.type = kCATransitionPush;
navTransition.subtype = kCATransitionPush;
[self.navigationController.navigationBar.layer addAnimation:navTransition forKey:nil];
}
我放了这段代码,我也做了它,所以两个导航栏上的标题和按钮在每个 UITableViewController 中都是完全相同的。它几乎可以工作,问题是,动画发生时导航栏会闪烁。有没有办法让它不闪烁,或者有没有其他好的方法来防止导航栏的动画发生(即禁用图层上的动画或其他东西)?
更新:有人有其他想法吗?仍在为此苦苦挣扎。
【问题讨论】:
标签: ios objective-c xcode uinavigationbar navigationbar