Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.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 I';我们隐藏了导航栏和状态栏,现在屏幕边缘平移手势返回赢得';不行,这是典型的吗?_Ios_Objective C_Cocoa Touch_Ios8_Uinavigationbar - Fatal编程技术网

Ios I';我们隐藏了导航栏和状态栏,现在屏幕边缘平移手势返回赢得';不行,这是典型的吗?

Ios I';我们隐藏了导航栏和状态栏,现在屏幕边缘平移手势返回赢得';不行,这是典型的吗?,ios,objective-c,cocoa-touch,ios8,uinavigationbar,Ios,Objective C,Cocoa Touch,Ios8,Uinavigationbar,我很好奇,如果我将导航栏设置为隐藏,同时隐藏状态栏,我的视图控制器将不再响应屏幕边缘手势来弹出视图控制器 这是预期的行为吗?隐藏导航栏后,我试图在viewDidLoad中将interactiveepgpesturerecognizer设置为启用,但它仍然无法工作。一个非常简单的解决方法: 将滑动手势方法链接到导航后退按钮。使用选择器popThisViewController使当前视图控制器成为手势识别器(self)的目标。然后将手势识别器安装到用户将滑动的视图中。别忘了添加您的返回操作 编辑添加

我很好奇,如果我将导航栏设置为
隐藏
,同时隐藏状态栏,我的视图控制器将不再响应屏幕边缘手势来弹出视图控制器


这是预期的行为吗?隐藏导航栏后,我试图在
viewDidLoad
中将
interactiveepgpesturerecognizer
设置为启用,但它仍然无法工作。

一个非常简单的解决方法:

将滑动手势方法链接到导航后退按钮。使用选择器popThisViewController使当前视图控制器成为手势识别器(self)的目标。然后将手势识别器安装到用户将滑动的视图中。别忘了添加您的返回操作

编辑添加的滑动手势,以供其他不知道的编码器参考

更干净的代码如下所示:

    UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(goBack:)];
    gesture.numberOfTouchesRequired = 1;
    gesture.direction = UISwipeGestureRecognizerDirectionRight;
    [self.view addGestureRecognizer:swipeRight];
}

-(IBAction)goBack:(id)sender {
    [self.navigationController popViewControllerAnimated:YES];
}

你确定你做得对吗?我总结了一个似乎对我有用的例子。我所做的只是使
navigationController.navigationBar.hidden=YES
[[UIApplication sharedApplication]setStatusBarHidden:YES]

-编辑-


仔细检查后,看起来UINavigationController上有两个不同的属性。有
navigationBar
是UINavigationBar视图,还有
navigationBarHidden
是布尔值。将
navigationBarHidden
设置为true时,滑动手势将停止工作。但是如果您使用
navigationBar.hidden
将实际视图设置为隐藏,则该手势仍然有效。查看Git存储库中的示例。

是的,这是完全正常的行为。@soulshined那么我该如何应对呢?请查看我的答案以供审阅。只需将该手势添加到viewDidLoad中,即可完成所有设置!我的回答回答了你的问题吗?这与iOS 7的流行手势大不相同。一个是从屏幕边缘开始的,另一个是交互的。这与iOS 7的弹出手势非常不同,可以通过另一种方式隐藏导航栏来轻松解决。我正在使用
UIViewController
上的
preferStatusBarHidden
方法隐藏状态栏。
[self.navigationController.navigationBar setHidden:YES];<--doesn't remove pop gesture

[self.navigationController setNavigationBarHidden:YES];<-- disables pop gesture
[self.navigationController.navigationBar setHidden:NO];