Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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
Swift 为什么我必须在我的应用程序中点击两次按钮?_Swift_Uibutton - Fatal编程技术网

Swift 为什么我必须在我的应用程序中点击两次按钮?

Swift 为什么我必须在我的应用程序中点击两次按钮?,swift,uibutton,Swift,Uibutton,我想使用按钮切换到不同的视图,但我必须点击按钮两次才能使其发挥作用 有什么建议我为什么要点击两次吗 代码如下: func tapEmergencyKitsDetected(sender:AnyObject) { myStack.push(thisNC) let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) let vc : UIViewController =

我想使用按钮切换到不同的视图,但我必须点击按钮两次才能使其发挥作用

有什么建议我为什么要点击两次吗

代码如下:

func tapEmergencyKitsDetected(sender:AnyObject) {
        myStack.push(thisNC)
        let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let vc : UIViewController = storyboard.instantiateViewControllerWithIdentifier("NCEmergencyKitsIntro") as! UIViewController
        self.presentViewController(vc, animated: true, completion: nil)
}

func tapEmergencyPlanDetected(sender:AnyObject) {

    myStack.push(thisNC)
    let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let vc : UIViewController = storyboard.instantiateViewControllerWithIdentifier("NCEmergencyPlanList") as! UIViewController
    self.presentViewController(vc, animated: true, completion: nil)
}

@IBAction func tapEmergencyKits(sender: UIButton) {
    self.buttonEmergencyKits.addTarget(self, action: Selector("tapEmergencyKitsDetected:"), forControlEvents: UIControlEvents.TouchDown)
}

@IBAction func tapEmergencyPlan(sender: UIButton) {
    self.buttonEmergencyKits.addTarget(self, action: Selector("tapEmergencyPlanDetected:"), forControlEvents: UIControlEvents.TouchDown)
}

该按钮对第一次点击做出响应。它完全按照你说的去做。但这件事并没有任何明显的结果。当你说:

@IBAction func tapEmergencyKits(sender: UIButton) {
    self.buttonEmergencyKits.addTarget(
        self, action: Selector("tapEmergencyKitsDetected:"), 
        forControlEvents: UIControlEvents.TouchDown)
}

您所做的只是重新配置按钮
self.buttonnemergencykits
在下一次点击时将执行的操作。然后,在下一次点击时,它确实会这样做。

尝试从情节提要中删除按钮的出口或操作之间的连接,并重新创建出口或功能之间的连接,然后再次清理并构建应用程序。

该代码的另一个问题是,您最终得到的按钮具有多个目标操作对,因为您没有删除以前的。你将面临一个非常混乱的局面。再次感谢。我注意到,当我纠正第一个错误时,现在一切正常。