如何使用Swift从ViewController获取TextView的文本值?

时间:2016-03-16 16:44:00

标签: ios swift textview

class AlertViewController: UITableViewController{
    @IBOutlet weak var alertText: UITextView!
    override func viewDidLoad() {
        super.viewDidLoad()
        alertText.text = "alert"
    }
}

所以我想在AppDelegate.swift中获取文本值,我有这个:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    let alertText = AlertViewController().alertText
    print(alertText.text)
    return true
}

我收到了这个错误

  

致命错误:在展开Optional值时意外发现nil   (LLDB)

2 个答案:

答案 0 :(得分:-1)

@IBOutlet weak var alertText: UITextView!

了解如何将其实例化为“弱”变量。这意味着除非需要,否则不会实例化。正如Ro22e0所说,我不确定你为什么要在appDelegate中调用它,但要确保实例化类对象。 textField.text值也是可选的,因此在尝试打印之前检查nil

if let alertText = AlertViewController.text {
    print(alertText)
}

答案 1 :(得分:-1)

override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(true)
        print("text:", alertText.text)
}

AppDelegate在ViewController之前启动