时间:2021-05-20
1.ViewController
.m
- (void)viewDidLoad { [super viewDidLoad]; self.title = @"隐藏导航栏"; UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.backgroundColor = [UIColor lightGrayColor]; button.frame = CGRectMake(10, 100, 60, 30); [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; self.navigationController.delegate = self;}- (void)buttonClick{ ///跳转到KKViewController [self performSegueWithIdentifier:@"pusht" sender:nil];}头部代理
@interface ViewController ()<UINavigationControllerDelegate>代理方法
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { [self.navigationController setNavigationBarHidden: [self hiddenBarVc: viewController] animated: animated];}- (BOOL)hiddenBarVc:(UIViewController *)viewController { BOOL needHideNaivgaionBar = NO; if ([viewController isKindOfClass: [KKViewController class]]) { needHideNaivgaionBar = YES; } return needHideNaivgaionBar;}2.KKViewController(目标ViewController)
新建一个KKViewController
.h
@property (nonatomic,strong) id popDelegate;.m
- (void)viewDidLoad { [super viewDidLoad]; self.title = @"第二个页面"; [self popSet];}- (void)popSet{ _popDelegate = self.navigationController.interactivePopGestureRecognizer.delegate; SEL action = NSSelectorFromString(@"handleNavigationTransition:"); UIPanGestureRecognizer *popPanGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self.popDelegate action:action]; popPanGesture.maximumNumberOfTouches = 1; popPanGesture.delegate = self; [self.view addGestureRecognizer: popPanGesture];}头部代理
@interface KKViewController ()<UIGestureRecognizerDelegate>手势代理方法
- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer{ ///【下面两个方法写一个】 ///全屏拖动 CGPoint tragPoint = [gestureRecognizer translationInView:gestureRecognizer.view]; if (tragPoint.x <= 0){ return NO; } else{ if (self.navigationController.viewControllers.count <= 1){ return NO; } else{ return YES; } }// ///局部允许拖动// CGPoint tragPoint = [gestureRecognizer locationInView:gestureRecognizer.view];// NSLog(@"x=%f;y=%f",tragPoint.x,tragPoint.y);// if (tragPoint.x > 60){///拖动的范围// return NO;// }// else{// if (self.navigationController.viewControllers.count <= 1) {// return NO;// }// else{// return YES;// }// }}效果图
总结
以上所述是小编给大家介绍的iOS 导航栏无缝圆滑的隐藏 Navigationbar,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言大部分情况下我们都是使用微信官方自带的navigationBar配置,但有时候我们需要在导航栏集成搜索框、自定义背景图、返回首页按钮等。思路隐藏官方导航栏获
IOS点击按钮隐藏状态栏详解前言:最近学习IOS的基础知识,实现隐藏状态栏的功能,这里就记录下来,希望对大家有所帮助实例代码:@interfaceSecondV
为了将导航栏显示在每一个页面中,可以将导航栏与放在同一级显示,如下:...但是,在某些时候,我们需要隐藏导航栏显示,比如登录界面,为了实现导航栏的隐藏,可以使用
一、状态栏与导航栏状态栏:显示时间、电池等信息导航栏:显示app页面标题,返回按钮等iOS7之前:状态栏与导航栏是分开的;iOS7之后:状态栏与导航栏合在一起;
本文实例为大家分享了iOS图片自动拉伸的具体代码,供大家参考,具体内容如下这个是使用一个切片,使其填充到整个NavigationBar上面。-(void)vie