Ios 如何防止轻敲屏幕时出现回跳
当我点击屏幕时,如何防止Xcode执行返回上一个视图控制器/屏幕的顺序 当我单击视图控制器/屏幕上的任意位置时,它会将我发送回以前查看的视图控制器/屏幕 我用模拟器和真实的iPhone进行了测试,它也做了同样的事情。此外,我已经通过删除Xcode中的所有序列来测试了这一点,如果我点击任何地方,它仍然会将我发送回上一个屏幕 [用代码更新] 视图控制器#1: 然后,从视图控制器#1到视图控制器#2添加了一个序列-一个标识符为“SecondView”的模态呈现 视图控制器#2:Ios 如何防止轻敲屏幕时出现回跳,ios,swift,xcode,ios-simulator,Ios,Swift,Xcode,Ios Simulator,当我点击屏幕时,如何防止Xcode执行返回上一个视图控制器/屏幕的顺序 当我单击视图控制器/屏幕上的任意位置时,它会将我发送回以前查看的视图控制器/屏幕 我用模拟器和真实的iPhone进行了测试,它也做了同样的事情。此外,我已经通过删除Xcode中的所有序列来测试了这一点,如果我点击任何地方,它仍然会将我发送回上一个屏幕 [用代码更新] 视图控制器#1: 然后,从视图控制器#1到视图控制器#2添加了一个序列-一个标识符为“SecondView”的模态呈现 视图控制器#2: 您似乎有一个全屏ui按
您似乎有一个全屏
ui按钮
或ui手势识别器
触发解除(动画:Bool)
或解除序列
请分享您的代码。我不知道您的详细代码,只需提供一种方法即可,使用EventTouch或UITapgestureRecognitizer即可,在查看控制器2中: EventTouch
希望能帮助你。首先,动画是如何发生的,我指的是过渡效果,如果是从上到下的,然后是发射,
try view interaction enable出于调试目的为false,并将结果发布为reply我找到了问题的答案 答案如下:
private func removePartialCurlTap() {
if let gestures = self.view.gestureRecognizers as? [UIGestureRecognizer] {
for gesture in gestures {
self.view.removeGestureRecognizer(gesture)
}
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
removePartialCurlTap()
}
问题似乎是用于Seque的转换,特别是当使用“Partial Curl”时,您会遇到这个问题。我猜这是Xcode/iOS中的一个bug,或者没有很好的文档记录,如果你使用特定的转换,你需要基本上删除手势识别器,这样当用户简单地单击屏幕上的某个人时,就不会返回到上一个屏幕
在此处发布此问题的答案应归功于:您没有提供足够的信息。您如何介绍第二视图控制器?以模式呈现它?你用的是爆米花吗?您所描述的不是正常行为,因此如果希望我们帮助您,您需要提供更多信息。是的,以模态方式呈现第二视图控制器。不是爆米花。我只是在创建一个视图控制器。然后在第一视图控制器中添加一个按钮,并为按钮添加一个动作触发器,以显示第二视图控制器。然后,第二视图控制器为空。上面没什么。。。如果我单击该视图/屏幕上的任何位置,它会将我发送回第一视图控制器。如果您发布一些打开文档大纲窗格的故事板屏幕截图,那就太好了。所以我们可以看到这些视图中的确切内容。不,没有全屏按钮。当我在序列图像板中创建一个新的ViewControl时会发生这种情况,即使屏幕是空白的。由于类ViewDogViewControllerOk的重新声明无效,您的代码可能会出错,我已经解决了这个问题,但仍然存在问题。这似乎没有帮助。。。如果我尝试这两种方法中的任何一种,我都会出错。但是谢谢你的建议。
import UIKit
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
dismiss(animated: Bool)
}
func handleTap(sender: UITapGestureRecognizer) {
if sender.state == .ended {
// handling code
dismiss(animated: Bool)
}
}
private func removePartialCurlTap() {
if let gestures = self.view.gestureRecognizers as? [UIGestureRecognizer] {
for gesture in gestures {
self.view.removeGestureRecognizer(gesture)
}
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
removePartialCurlTap()
}