Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在设置UIWebView动画之前隐藏导航控制器_Ios_Uiwebview_Uinavigationcontroller_Uiwebviewdelegate - Fatal编程技术网

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

Ios 在设置UIWebView动画之前隐藏导航控制器,ios,uiwebview,uinavigationcontroller,uiwebviewdelegate,Ios,Uiwebview,Uinavigationcontroller,Uiwebviewdelegate,我有一个本机iOS应用程序,将有一些本机内容和一些在UIWebView中出现的内容。总的来说,我的导航是通过UINavigation控制器完成的,但是一旦我进入web应用程序的第二级,我想切换到web导航,并且我希望它对用户来说是无缝的 我找到了一种在第二个视图中隐藏uinavigationcontroller的方法,使用以下代码: NSURL *url = request.URL; NSString *urlString = [url absoluteString];

我有一个本机iOS应用程序,将有一些本机内容和一些在UIWebView中出现的内容。总的来说,我的导航是通过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,然后它会移动到屏幕顶部并隐藏起来。这不是一个好的用户体验


我想隐藏导航栏,然后加载页面,但不知道如何操作

您需要在ViewWillAppease上调用相同的方法:对于正在出现的控制器,这将得到您需要的结果

- (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];
}