我想在场景之间制作一个条件segue,这样只有在条件满足时才会发生。问题是,当我点击激活此segue的按钮时,它会执行segue而不关心是否满足条件。这是代码:
@IBAction func goonbutton(sender: UIButton) {
if textFieldRandomWord.text !=nil
{
performSegueWithIdentifier("firstsegue", sender: sender)
} else {
whateverLabel.text = "You didn't actually write anything."
}
}
所以我希望segue仅在textFieldRandomWord!= nil时出现。任何帮助将不胜感激!
答案 0 :(得分:5)
你想要做的是实现:
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool {
if identifier == "WhateverYourSegueIsNamed" { // you define it in the storyboard (click on the segue, then Attributes' inspector > Identifier
if textFieldRandomWord.text.isEmpty == true {
print("*** NOPE, segue wont occur")
return false
}
else {
print("*** YEP, segue will occur")
}
}
// by default, transition
return true
}
我的答案基于这个很好的例子in this related question's answer
答案 1 :(得分:1)
你非常接近。你不想对nil进行测试。相反,您应该测试textField是否为空。
if !textFieldRandomWord.text.isEmpty
{
performSegueWithIdentifier("firstsegue", sender: sender)
}
else
{
whateverLabel.text = "You didn't actually write anything."
}
你可能需要在textFieldRandomWord上添加一个unwrap,如果它是一个可选的,通常是出口。
答案 2 :(得分:0)
问题是,如果textfield为空,它不等于nil,你可以写这个而不应该工作
$scope.submitForm = function () {
console.log($scope.formData);
if($scope.formData == null) {
$scope.error = true; //or //$scope.errorMessage = $emptyContent;
}
};
写一个空字符串(“”)而不是nil