ios - 通过 Segue 将文本传递给 TextView

标签 ios swift uitextview segue uistoryboardsegue

我正在尝试将文本从其他 ViewController 传递到 TextView:

    if (segue.identifier == "HomeToDetails") {
        let nav = segue.destination as! UINavigationController
        let nextVC = nav.topViewController as! DetailsViewController
        nextVC.infoTextView.text = "TESTING"
    }

但是它崩溃了:

fatal error: unexpectedly found nil while unwrapping an Optional value

最佳答案

prepareForSegue:sender 中不可能在 DestinationViewControllerUITextField 上设置文本,因为最近分配的 Controller 的所有 View 组件都不是在加载 View 之前初始化(此时,它们都是 nil),它们只会在加载 DestinationViewController View 时进行。

您需要在 DetailsViewController 中使用可选变量 infoString,您可以在 prepareForSegue 方法中设置

if (segue.identifier == "HomeToDetails") {
        let nav = segue.destination as! UINavigationController
        let nextVC = nav.topViewController as! DetailsViewController
        nextVC.infoString = "TESTING"
}

DetailsViewController.swift

class DetailViewController: UIViewController {

  var infoString: String?

  override func viewDidLoad() {
     super.viewDidLoad()

     if let info = infoString {
         self.infoTextView.text = info
     }
   }

}

关于ios - 通过 Segue 将文本传递给 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42086499/

相关文章:

SwiftUI 按钮选择

swift - 无法将 URL.Type 类型的值转换为预期的参数类型 'URL'

ios - UITextView 中的纯文本

ios - 如何获取 NSString 中子字符串的 NSRange(s)?

ios - 如何在连接到另一个 viewController 的标签中显示数组计数

ios - -all_load 其他链接器标志导致第 3 方框架中的重复符号错误

ios - 如何将预填充的 sqlite 文件导入到 ios 应用程序并请求查询

TableView 内的 Swift Collection View 有空白空间

ios - 将 UITextView 中的文本替换为可链接文本 - iOS

java - 将文本数据存储在一个/多个文件中以使其可用于各种平台的最佳方法是什么?