【发布时间】:2016-12-15 16:44:58
【问题描述】:
请在您将此问题标记为重复之前,我想知道为什么我的代码失败了,而不是发送给另一个正在运行的代码。
我是 swift 的新手,我想在单击同一个按钮时从 viewController 发送一个变量“um_words”(单击按钮时计算),将该变量保存在 secondViewController 中并显示在一个文本视图。为此,我尝试了对这段代码的许多修改,这在控制台中没有给出错误,但没有在 textView 上显示变量的值:
第一个 VC
import UIKit
import Foundation
class TransViewController: UIViewController {
@IBOutlet var trad_text: UITextView!
@IBOutlet var buttonTrad: UIButton!
@IBOutlet var labelsitoh: UILabel!
var num_words = 0
@IBAction func butCalc(_ sender: UIButton) {
let text = trad_text.text
num_words = (text?.components(separatedBy: " ").count)!-1
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
var DestViewController : PaymentViewController = segue.destination as! PaymentViewController
DestViewController.num_words = String(num_words)
}
}
override func viewDidLoad() {
super.viewDidLoad()
trad_text!.layer.borderWidth = 1
trad_text!.layer.cornerRadius = 20
trad_text!.layer.borderColor = UIColor(red:0.22, green:0.26, blue:0.39, alpha:1.0).cgColor
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
第二个 VC
import UIKit
import Foundation
class PaymentViewController: UIViewController {
@IBOutlet var labelImport: UITextView!
var num_words = String()
override func viewDidLoad() {
super.viewDidLoad()
labelImport.text = num_words
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
我有一个关于它为什么不起作用的假设:函数“prepare”没有被调用;仅在单击按钮时才会转到下一个 VC...
感谢您的宝贵时间。
【问题讨论】:
-
在 prepareForSegue 中看不到任何内容。阅读(在这里和任何地方)这是如何完成的。请做好自己的功课。
-
您的准备函数在另一个函数中,这就是它没有被调用的原因。
-
我的函数位于单击按钮时应调用的函数内。如果我这样做它不起作用?
标签: ios swift uiviewcontroller viewcontroller