以下代码
class ViewController: UIViewController {
@IBOutlet weak var knock: UIButton!
@IBOutlet weak var label: UILabel!
var count: Int = 0
var unlocked: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func knockKnock(sender: UIButton) {
if count < 20 {
label.text = "Knocked \(count) times."
} else if count > 19 && count < 40 {
label.text = "Knocked \(count) times."
label.textColor = UIColor.randomColor()
} else if count > 39 && count < 100 {
label.text = "That's enough."
label.textColor = UIColor.blackColor()
} else if count > 99 && count < 102 {
label.text = "I wish you hadn't done that."
label.textColor = UIColor.redColor()
} else if count == 103 {
label.text = "Fine, come in."
label.textColor = UIColor.greenColor()
count = 126
unlocked += 1
}
if unlocked > 0 {
self.performSegueWithIdentifier("InsideHomeSegue", sender:sender)
}
count += 1
}
在
中提前执行Segue if unlocked > 0 {
self.performSegueWithIdentifier("InsideHomeSegue", sender:sender)
}
第一次按下按钮时会立即执行segue,这是我不明白的,因为此时代码应该在false if
语句后面无法访问,因为int unlocked
已初始化与0
我遇到了类似的问题,结果证明是XCode本身的问题,而不是我的代码;我查看了所有可以在Interface Builder中引用任何变量或对象的文件,检查了命名不一致性,流氓网点等。
我仍然对Segues有一个非常不稳定的理解,并希望任何人都可以提供任何详细的帮助。
较大的if
/ else if
块一直正常工作直到最终增量,直到添加了Segue代码。
最初self.performSegueWithIdentifier("InsideHomeSegue", sender:sender)
行位于else if count == 103 {
块内; var unlocked: Int
被添加以对抗Segue问题无济于事。
我已经阅读了有关Segues的XCode文档的几页,但还没有找到我能尝试的其他内容。
我可能会忽略一些非常明显的东西,但无论如何,感谢阅读。
干杯
编辑:我检查了所有网点,它是目前该项目中唯一的Segue,它并没有在其他任何地方连接。按下按钮时激活Segue,而不是立即在View load上激活。