使UINavigationBar消失并显示在触摸屏上,模仿iOS上的safari

使UINavigationBar消失并显示在触摸屏上,模仿iOS上的safari,ios,objective-c,safari,uinavigationbar,Ios,Objective C,Safari,Uinavigationbar,我有一个从UITableViewController调用的UIPageViewController,它向用户显示一系列图像 这些图像包含大量信息,虽然在整个过程中都使用UINavigationBar是没有意义的,因为它只是用来共享图像或返回,但是有没有办法在iOS上模拟Safari,上面的UINavigationBar会消失并在触摸屏上重新出现 我没有尝试过任何东西,因为我真的不知道从哪里开始做这样的事情。有没有第三方开源框架,或者一种简单的方法来制作动画?也许在viewDidLoad中,在UI

我有一个从
UITableViewController
调用的
UIPageViewController
,它向用户显示一系列图像

这些图像包含大量信息,虽然在整个过程中都使用
UINavigationBar
是没有意义的,因为它只是用来共享图像或返回,但是有没有办法在iOS上模拟Safari,上面的
UINavigationBar
会消失并在触摸屏上重新出现

我没有尝试过任何东西,因为我真的不知道从哪里开始做这样的事情。有没有第三方开源框架,或者一种简单的方法来制作动画?也许在viewDidLoad中,在
UINavigationBar
上有一个计时器,在开始时显示,然后在2秒钟后消失,等等,但触摸后会重新出现吗

如果您能就此提供指导,我们将不胜感激

试试这段代码

[[self navigationController] setNavigationBarHidden:YES animated:YES];

[[self navigationController] setNavigationBarHidden:NO animated:YES];

iOS 8提供默认功能

self.navigationController.hidesBarsOnTap = true;
[已编辑]在viewDidLoad中添加点击手势

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapHandle:)];
[self.view addGestureRecognizer:tapRecognizer];
将以下方法添加到viewController中

- (void)tapHandle:(UITapGestureRecognizer*)sender {
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        if (self.navigationController.navigationBarHidden == NO) {
                [[self navigationController] setNavigationBarHidden:YES animated:YES];
        }
        else{
                [[self navigationController] setNavigationBarHidden:NO animated:YES];
        }
    });
}

您可以使用点击手势显示/隐藏UINavigationBar更多默认功能,您可以点击swift中的链接:Apple Developer Document->从这个Pavan中查找“隐藏导航栏”-非常感谢您的回复。这一行代码真是太棒了,它就像一个符咒。现在要有一个计时器,我该怎么做?因此,当视图显示时,它会显示条形图,然后在2秒钟后隐藏它?请不要使用此self.navigationController.hidesBarsOnTap=true;对于两秒钟后隐藏导航,请使用编辑的答案。它可以根据您的需要工作。非常感谢Pavan-这很完美,也很有帮助!我很感谢你的帮助。谢谢Nikunj-这很有帮助!另一个答案更合适