Ios 第二个视图控制器仍对第一个视图控制器swift 3作出反应

Ios 第二个视图控制器仍对第一个视图控制器swift 3作出反应,ios,swift,swift3,uiviewcontroller,segue,Ios,Swift,Swift3,Uiviewcontroller,Segue,我正在开发一个应用程序,我必须建立自己的手势识别(苹果的太精确了) 我需要使用第二个视图控制器(设置),当我使用第二个时,它仍然会对第一个做出反应 这是一个很有问题的问题,因为我用这些手势控制房子里的东西(比如灯光、音乐或更多),所以想象一下,你点击第二个视图上的按钮,房间就会亮起来,或者你向下滑动第二个视图,音乐就会被切断 我正在使用segue转到SecondViewController self.performSegue(withIdentifier: "SecondViewControll

我正在开发一个应用程序,我必须建立自己的手势识别(苹果的太精确了)

我需要使用第二个视图控制器(设置),当我使用第二个时,它仍然会对第一个做出反应

这是一个很有问题的问题,因为我用这些手势控制房子里的东西(比如灯光、音乐或更多),所以想象一下,你点击第二个视图上的按钮,房间就会亮起来,或者你向下滑动第二个视图,音乐就会被切断

我正在使用segue转到SecondViewController

self.performSegue(withIdentifier: "SecondViewController", sender:self)
我已经为第二个视图控制器创建了另一个swift文件,其中目前没有任何内容

你知道发生了什么事吗?我怎么解决

谢谢

编辑:根据要求,以下是更多代码:

import UIKit

class ViewController: UIViewController {
//Variables definition

override func viewDidLoad() {
    super.viewDidLoad()
    ascending = false
    UIScreen.main.wantsSoftwareDimming = true
    UIScreen.main.brightness = (0.0)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()

}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    self.timer.invalidate()
    isPinched = false
    super.touchesBegan(touches, with: event)
    startTime = getCurrentMillis()

    for touch in touches{
        let point = touch.location(in: self.view)
        for (index,finger)  in fingers.enumerated() {
            if finger == nil {
                fingers[index] = String(format: "%p", touch)

                if (finger1.isEmpty){
                    finger1 = [point.x, point.y]
                } 
                //And so on until finger10
                break
            }
        }
    }

    //If the gesture is long enough, I have a special recognition (longPress)

    timer = Timer.scheduledTimer(timeInterval: 0.4, target: self, selector: #selector(increaseValue), userInfo: nil, repeats: true)
    if ascending {
        ascending = false
    }
    else {
        ascending = true
    }
}

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
    super.touchesMoved(touches, with: event)

    for touch in touches {
        let point = touch.location(in: self.view)
        for (index,finger) in fingers.enumerated() {
            if let finger = finger, finger == String(format: "%p", touch) {
                switch (index){
                case 0 :
                    finger1 += [point.x, point.y]
                //And so on until case 9 / finger10
                default :
                    break
                }
            }
        }
    }
}

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
    super.touchesEnded(touches, with: event)
    endTime = getCurrentMillis()

    for touch in touches {
        for (index,finger) in fingers.enumerated() {
            if let finger = finger, finger == String(format: "%p", touch) {
                fingers[index] = nil
                break
            }
        }
    }

    direction[0] = ""
    direction[1] = ""
    direction[2] = ""
    direction[3] = ""
    direction[4] = ""

    if finger1.count != 0 {
        direction[0] = GestureRecognizer(coordinates: finger1, index: 0)
    }
    if finger2.count != 0 {
        direction[1] = GestureRecognizer(coordinates: finger2, index: 1)
    }
    if finger3.count != 0 {
        direction[2] = GestureRecognizer(coordinates: finger3, index: 2)
    }
    if finger4.count != 0 {
        direction[3] = GestureRecognizer(coordinates: finger4, index: 3)
    }
    if finger5.count != 0 {
        direction[4] = GestureRecognizer(coordinates: finger5, index: 4)
    }


    if Int64(endTime - startTime) < 600 {
//My gesture recognition 
    }

    DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
        self.directionLabel.text = self.labelUpdate
        self.finger1 = []
        self.finger2 = []
        self.finger3 = []
        self.finger4 = []
        self.finger5 = []
        self.finger6 = []
        self.finger7 = []
        self.finger8 = []
        self.finger9 = []
        self.finger10 = []
    }
}

//One of the function I call
func swipeLeftTwo(){
    request(urlAdress: "Url Adress")
}

func swipeRightFour(){
        self.performSegue(withIdentifier: "SecondViewController", sender:self)
}
}

请提供更多的代码,从这些信息中很难确定可能是什么错误。看,这是我第一次听到苹果(手势)太精确的问题,但你可能想调查一下,它可能会解决你的问题。@BenOng事实上Ipad不会以传统方式使用,它会固定在墙上,人们经过时会与它互动(当您离开房间时,您不会停在开关前关灯,是吗?)我们想“更换”如果你想的话,可以在Ipad上使用swift,这样的手势就不太准确了。听起来你好像把手势识别器连接到了根窗口或其他什么东西上;但是如果没有代码,我们就只是guessing@D好的,我会试试,但在这个问题上我没什么好说的。主要是我覆盖了touchesbeated/touchesMoved和touchesE也许这就是我的问题所在。
import UIKit

class SecondViewController: UIViewController {

@IBOutlet weak var labelTe: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()
    labelTe.text = "something changed"
    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
}