Zin*_*ing 24 xcode objective-c ios
我有一个UITableView,它有一个导航栏(来自UINavigationViewController),它可以通过用手指向后滑动返回.
我试图隐藏导航栏但保持滑回功能,代码:
- (void)viewWillAppear:(BOOL)animated {
[[self navigationController] setNavigationBarHidden:YES animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
这成功地隐藏了导航栏,但是,我也无法再滑回到最后一个屏幕.
有没有办法隐藏导航栏但保持滑回功能?
小智 54
如果你使用的话,用Swift 2测试@gabbler的解决方案
self.navigationController?.navigationBar.hidden = true
Run Code Online (Sandbox Code Playgroud)
Swift 3.0
self.navigationController?.navigationBar.isHidden = true
Run Code Online (Sandbox Code Playgroud)
代替
self.navigationController?.navigationBarHidden = true
Run Code Online (Sandbox Code Playgroud)
向后滑动手势就像一个魅力!
Zin*_*ing 21
找到解决方案:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// hide nav bar
[[self navigationController] setNavigationBarHidden:YES animated:YES];
// enable slide-back
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
在.h文件中,符合UIGestureRecognizerDelegate
使用
self.navigationController.navigationBar.hidden = YES;
Run Code Online (Sandbox Code Playgroud)
或者在viewWillAppear中添加以下行:
self.navigationController.interactivePopGestureRecognizer.delegate = self;
Run Code Online (Sandbox Code Playgroud)
似乎交互无效,添加此行并使视图控制器符合UIGestureRecognizerDelegate协议将使其工作.
| 归档时间: |
|
| 查看次数: |
12595 次 |
| 最近记录: |