0

我想要一个UINavigationController悬停在当前屏幕上而不是向下“平移”屏幕为它让路。

目前我的实现是这样的:

UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonSystemItemCancel target:self action:@selector(backButtonTapped)];
[self.navigationItem setBackBarButtonItem:backButton];

因此,每次我显示 navigationItem 时,它都会向下滑动到屏幕中,平移整个屏幕。然后当我隐藏它时,它会滑出,拉回整个屏幕。我希望它改为悬停,即屏幕的位置保持不变。谢谢!

4

1 回答 1

0

根据问题,当我们从导航控制器推送屏幕时,您希望为屏幕设置动画。我已经在我的项目中完成了。步骤如下

1)当您从导航控制器推送视图控制器时,您必须在我们推送时为当前视图控制器设置动画。代码如下

 (void)viewWillDisappear:(BOOL)animated {
    [UIView beginAnimations:@"animation2" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration: 0.7];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO]; 
    [UIView commitAnimations];
[super viewWillDisappear:animated];
}

2)如果你想从第二个视图控制器弹出到第一个视图控制器意味着你在第二个视图控制器中输入相同的代码。你可以通过修改这个方法参数来改变动画过渡端setAnimationTransition

于 2013-04-08T08:58:38.023 回答