我正在将一个包含 tableiview 的视图控制器推到我的 uinavigation 控制器上:
CourseMenuViewController *mvc = [[[CourseMenuViewController alloc] initWithSlidingNavigationcontroller:self.slidingNavigationController] autorelease];
mvc.course = course;
[self.navigationController pushViewController:mvc animated:YES];
[self.navigationController setNavigationBarHidden:NO animated:NO];
到目前为止一切顺利,一切都按预期工作。当我观看动画并看到我的所有表格视图行从屏幕顶部向下动画时,就会出现我的问题,因为视图是从左侧进入动画的。这让人感觉视图从左上角沿对角线路径移动到右下角。
我的问题是,我怎样才能让表格视图只出现而不是动画?我应该补充一点,我的所有单元格都是静态的,所以我不会等待来自 NSFetchedResultsController 或类似的任何数据。
下面的 roronoa 让我走上了正确的道路,这是现在工作的版本:
CourseMenuViewController *mvc = [[[CourseMenuViewController alloc] initWithSlidingNavigationcontroller:self.slidingNavigationController] autorelease];
mvc.course = course;
CATransition *caTransition = [CATransition animation];
caTransition.duration = 0.35;
caTransition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
caTransition.delegate = self;
caTransition.type = kCATransitionPush;
caTransition.subtype = kCATransitionFromRight;
[self.navigationController.view.layer addAnimation:caTransition forKey:nil];
[self.navigationController pushViewController:mvc animated:NO];