如何创建悬停在屏幕上的UINavigationController(不向下翻译屏幕)

时间:2013-04-08 08:39:59

标签: ios uinavigationcontroller uikit uinavigationbar

我希望有一个UINavigationController悬停在当前屏幕上,而不是向下“翻译”屏幕以便为它腾出空间。

目前我的实施方式如下:

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

所以每当我显示navigationItem时会发生什么,它会自动向下滑入屏幕,翻译整个屏幕。然后当我隐藏它时,它会滑出,拉回整个屏幕。我希望它可以悬停,即屏幕的位置保持不变。谢谢!

1 个答案:

答案 0 :(得分: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