xcode - 点击屏幕时隐藏/取消隐藏 UINavigationbar

标签 xcode hide uinavigationbar

我对 iOS 开发很陌生,我刚刚创建了我的第一个应用程序,在我的 .xib 文件中我有一个 UINavigationBar当用户点击屏幕的一部分时(例如在照片应用程序中),我想隐藏/显示。我在网上找到了一些片段,但我不知道在哪里以及如何使用它们。

如果有人能给我有关如何执行此操作的详细信息,我将不胜感激。

最佳答案

在 UIViewController 中的任何位置添加此切换方法。这在第一次点击时隐藏并在第二次点击时再次显示。

- (void)toggleNavBar:(UITapGestureRecognizer *)gesture {
    BOOL barsHidden = self.navigationController.navigationBar.hidden;
    [self.navigationController setNavigationBarHidden:!barsHidden animated:YES];
}

如果没有导航 Controller ,则将导航栏与 IBOutlet 链接并替换为
- (void)toggleNavBar:(UITapGestureRecognizer *)gesture {
    BOOL barsHidden = self.navBar.hidden;
    self.navBar.hidden = !barsHidden;
}

然后在方法-(void)viewDidLoad {}中添加以下内容
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleNavBar:)];
[self.view addGestureRecognizer:gesture];
[gesture release];

如果要点击的 View 是 UIWebViewController,则必须将协议(protocol)添加到 View Controller 并将其设置为委托(delegate) gesture.delegate = self;然后添加以下内容:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

这是必需的,因为 UIWebViewController 已经实现了自己的手势识别器。

关于xcode - 点击屏幕时隐藏/取消隐藏 UINavigationbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202852/

相关文章:

iphone - 如何在不使用 drawRect 类别的情况下将图像设置为导航栏背景?

objective-c - 为什么在 Debug模式下使用 CCLog 和使用 print 时变量的值不同?

ios - MoarFonts 在 Xcode 5.1.1 中损坏

javascript - AnimationEnd 隐藏另一个 div

jquery - 鼠标从一个 div 移动到另一个 div,不要在父级的鼠标离开时隐藏未包裹在父级内部的 div - jquery

ios - 选择不同的选项卡时更改导航栏标题

ios - 带有 Pan 手势冲突的 ScrollView 和侧边菜单

ios - <未知> :0: error: IR generation failure: program too clever: variable collides with existing symbol OBJC_CLASS_$_UIDevice

c++ - C++中的默认关闭操作(Windows窗体)

NavigationBar 中的 iOS 11 Logo 和标题