Swift 根据uitextfield中的信息,使用相同的按钮对两个不同的ViewController执行segue
我正在尝试使用相同的按钮将视图控制器切换到两个不同的视图控制器。但是我希望segue是基于uitextfield中的信息来完成的。e、 g=如果文本字段包含正确的信息,则我需要执行segue以将其转换为ViewController如果信息与我的字符串数组不匹配,ViewController将转换为viewControllerB 示例代码:Swift 根据uitextfield中的信息,使用相同的按钮对两个不同的ViewController执行segue,swift,segue,Swift,Segue,我正在尝试使用相同的按钮将视图控制器切换到两个不同的视图控制器。但是我希望segue是基于uitextfield中的信息来完成的。e、 g=如果文本字段包含正确的信息,则我需要执行segue以将其转换为ViewController如果信息与我的字符串数组不匹配,ViewController将转换为viewControllerB 示例代码: @IBOutlet var pcTextField: UITextField! @IBOutlet var odButton: UIButton! var a
@IBOutlet var pcTextField: UITextField!
@IBOutlet var odButton: UIButton!
var activePcText = ["over", "left", "weak", "never"]
override func viewDidLoad() {
super.viewDidLoad()
pcTextField.delegate = self
let tapRecognizer = UITapGestureRecognizer(target: self, action: "hideKeyboard")
view.addGestureRecognizer(tapRecognizer)
odButton.hidden = true
self.pcTextField.addTarget(self, action: "pcEmpty", forControlEvents: UIControlEvents.EditingChanged)
}
@IBAction func odButton(sender: AnyObject) { }
我尝试将if语句实现为
@IBAction func odButton(sender: AnyObject) {
if pcTextField.text!.containsString(activePcText) { }
}
我只是得到一个错误,说:
Cannot convert value of type '[String]' to expected argument type 'String'
这使得它不区分大小写
这使得它不区分大小写。这是一个
prepareforsgue
方法的示例,它可以完成您听起来想要做的事情
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "segueIdentifier" {
if myTextField.text = "words inside text field" {
let controller = segue.destinationViewController as! MyViewController
} else if myTextField.text = "different words in text field" {
let controller = segue.destinationViewController as! MyOtherViewController
}
}
}
因此,根据myTextField
中的文本,将对MyViewController
或MyOtherViewController
然后在要触发segue的任何按钮的
@IBAction
中添加performsguewithidentifier(“segueinidentifier”)
这是一个prepareForSegue
方法的示例,它可以完成您听起来想要做的事情
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "segueIdentifier" {
if myTextField.text = "words inside text field" {
let controller = segue.destinationViewController as! MyViewController
} else if myTextField.text = "different words in text field" {
let controller = segue.destinationViewController as! MyOtherViewController
}
}
}
因此,根据myTextField
中的文本,将对MyViewController
或MyOtherViewController
然后在
@IBAction
中,无论你想触发哪个按钮,你都会添加performsguewithidentifier(“segueinidentifier”)
在过去的两天里,我一直在努力寻找解决方案,但都找不到,你明白我在尝试做什么还是我应该表达更多吗,从你的问题中我可以看出:你想切换到一个基于文本字段中文本的视图。如果文本与数组中的字符串匹配,则应转到viewControllerA
,如果没有匹配的viewControllerB
。这就是我的答案:)。使用您提供的代码,无论UITextField中的文本如何,都可以继续查看控制器。我认为您做错了什么。因为正如你在我更新的答案中所看到的,它正在工作。我把你的代码放在我的项目中,就像你写的那样。我不知道我会做错什么?当点击按钮时,无论文本字段中的文本如何,它都会转到viewControllerA…我在过去的两天里一直试图找到一个解决方案,但找不到,你明白我想做什么还是我应该表达更多吗?好吧,从你的问题中我可以看出:你想根据文本字段中的文本转到一个视图。如果文本与数组中的字符串匹配,则应转到viewControllerA
,如果没有匹配的viewControllerB
。这就是我的答案:)。使用您提供的代码,无论UITextField中的文本如何,都可以继续查看控制器。我认为您做错了什么。因为正如你在我更新的答案中所看到的,它正在工作。我把你的代码放在我的项目中,就像你写的那样。我不知道我会做错什么?单击按钮后,无论文本字段中的文本如何,它都会转到viewControllerA…您可以在prepareforsgue
方法中执行此操作,您可以使用if-else
语句根据UITextField
text确定哪个视图控制器也是正确的分段控制器。您可以在prepareForSegue
方法中执行此操作,您可以使用if-else
语句根据UITextField
text确定哪个视图控制器也是正确的sege。如果他正确设置了segue标识符并使用了我的答案,他就不需要覆盖此项。是的,您的可以,这也可以。只是给提问者一些不同的选择,让他明白存在不止一种方法。这也可能是一个更容易让提问者阅读和理解的版本。这是真的,我并没有任何冒犯的意思。只是想指出它是额外的(不必要的)代码:)。不用担心:),我们都在这里提供帮助。我同意,我的是一个不太“快速”的版本!在你的代码中,如果它说if myTextField.text=“words inside text field”我能不能无论如何让它变成“if myTextField.text=activePcText”如果他正确设置了他的segue标识符并使用了我的答案,他就不需要重写这个……是的,你的可以,这也可以。只是给提问者一些不同的选择,让他明白存在不止一种方法。这也可能是一个更容易让提问者阅读和理解的版本。这是真的,我并没有任何冒犯的意思。只是想指出它是额外的(不必要的)代码:)。不用担心:),我们都在这里提供帮助。我同意,我的是一个不太“快速”的版本!在您的代码中,它会显示if myTextField.text=“words inside text field”我是否可以将其设置为“if myTextField.text=activePcText”