5

当我从模态视图控制器返回到主视图控制器(我有一个水平动画)时,我的主控制器导航栏在短时间内将自身放置得太高,然后跳回到正确的位置。有人知道为什么吗?我一直在谷歌搜索,但没有成功。

应用代表:

 [navigationController.navigationBar setBarTintColor: [UIColor whiteColor]];
 [navigationController.navigationBar setTranslucent: NO];

当我按下按钮打开我的信息视图时:

UIViewController *infoViewController;
infoViewController = [[InfoViewController alloc] initWithNibName:@"InfoViewController" bundle: nil];
infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController: infoViewController animated: YES completion:nil];

我没有在任何 xib 文件上使用自动布局。我的主视图控制器 xib 文件为空,状态栏:默认。我的信息视图控制器 xib 文件中有一些东西。

关闭我的模态视图控制器的代码:

-(IBAction)onBackBtnClick:(id)sender
{
    [self dismissModalViewControllerAnimated: YES];
}
4

2 回答 2

3

您所要做的就是在“InfoViewController”viewController 类的 ViewWillAppear 中添加以下代码

-(void) viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];

    [self.navigationController.navigationBar setTranslucent:NO];
    [self.navigationController.navigationBar.layer removeAllAnimations];
}

希望它对你有用:)

于 2014-04-07T08:53:39.600 回答
-1

问题似乎是

infoViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

如果您将其更改为

infoViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

那么它就不会再跳了。这对我有用。祝你好运!

于 2013-10-02T05:03:05.117 回答