在动画UIWebView之前隐藏导航控制器

时间:2014-06-04 18:47:04

标签: ios uiwebview uinavigationcontroller uiwebviewdelegate

我有一个原生的iOS应用程序,它将在UIWebViews中显示一些原生内容和一些内容。总体而言,我的导航是使用UINavigation控制器完成的,但是一旦我进入Web应用程序的第二级,我想切换到Web导航,我希望这对用户来说是无缝的。

我在第二个视图中找到了隐藏uinavigationcontroller的方法,使用以下代码:

    NSURL *url = request.URL;
      NSString *urlString = [url absoluteString];

      if ([urlString isEqualToString:@"http:myApp/Page1.xsp"]) 
      {
        [self.navigationController setNavigationBarHidden:FALSE animated:YES];
      } else {
        [self.navigationController setNavigationBarHidden:TRUE animated:YES];
      }

      return YES;
    }

但是,当我运行它时,我会看到iOS UINavigationBar,然后它会移动到屏幕顶部并被隐藏。这不是一个好的用户体验。

我想隐藏导航栏然后加载页面,但无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

你需要在出现控制器的viewWillAppear上调用相同的方法,这样才能得到你需要的结果

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}