我尝试制作应用程序,从两个文本字段中获取信息并随机选择其中一个句子并将其放在另一个视图控制器上的标签中。我是Mobile Apps 1课程的学生,所以我对此不熟悉。如果你能尽可能地解释它,将不胜感激。新年快乐!
我的代码:
class twoIdeasViewController: UIViewController {
@IBOutlet weak var twoIdeaContinueButton: UIButton!
@IBOutlet weak var twoIdea2TextField: UITextField!
@IBOutlet weak var twoIdea1TextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Enter Ideas"
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
let twoIdea1:String = twoIdea1TextField.text!
let twoIdea2:String = twoIdea2TextField.text!
return true
}
func prepareForSegue(segue: UIStoryboardSegue, Object: AnyObject?){
let twoIdeaFinal = segue.destinationViewController as! twoFinalViewController
twoIdeaFinal.twoIdea = //the variable that will contain the randomizer
}
}
答案 0 :(得分:1)
利用arc4random_uniform()
生成一个随机数,控制您要提取的两个文本字段中的哪一个并从中发送文本。此外,您似乎需要修复prepateForSegue
方法:您需要将segue标识符与第二个视图控制器的标识符匹配(在属性检查器中设置,同时在故事板中选择此其他视图控制器)。
@IBOutlet weak var twoIdea2TextField: UITextField!
@IBOutlet weak var twoIdea1TextField: UITextField!
// ...
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
/* Get the new view controller using segue.destinationViewController.
Pass the randomly chosen text view text to the UILabel of the
new view controller. */
/* Here: you need to match with the identifier of your
VC 'twoFinalViewController' (set in attributes inspector) */
if segue.identifier == "twoFinalVC" {
let viewController = segue.destinationViewController as! ViewController
let random = arc4random_uniform(2)
viewController.twoFinalLabel.text = (random == 0) ? (twoIdea1TextField.text ?? "") : (twoIdea2TextField.text ?? "")
}
}
有关两个视图控制器(UITableViewController
和UIViewController
)之间的segue通信的详细说明,请参阅以下主题
答案 1 :(得分:0)
你可以使用类似的东西
func getRandomString() -> String
{
let randomNumber = arc4random_uniform(2) + 1
switch randomNumber
{
case 1:
return twoIdea1TextField.text!
case 2:
return twoIdea2TextField.text!
default:
return ""
}
}
我没有时间,但我认为用枚举比我做的更简单。