在Viewcontroller之间传递来自Realm的数据

时间:2018-06-25 11:39:24

标签: ios swift uiviewcontroller realm

我已经从领域数据库中的表单中保存了数据(即姓名,年龄,地址等),我想将这些值传递给整个项目中的各种视图控制器。

在我的一个视图控制器中,有一个表视图可以访问数组中的某些数据并填充单元格。我想做的是,当用户点击单元格时,来自我领域的数据将传递到详细信息视图控制器中的各种标签和文本字段。我早些时候读到,我所需要的只是使用prepareForSegue,但是我不确定访问这些值的正确方法,因此它们无法到达destinationviewcontroller。我将为我的视图控制器添加代码片段,以便您可以看到我当前所在的位置。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let request = try! Realm().objects(RenterRequest.self).sorted(byKeyPath: "requestAddress")

    if segue.identifier == "HistoryData" {
        let renterMaintenanceHistory = segue.destination as? RenterMaintenanceHistory
        renterMaintenanceHistory?.renterHIstoryAddress.text = request.description
    }
}

import UIKit
import RealmSwift

class RenterMaintenanceHistory: UIViewController {

    var request = RenterRequest()

    @IBOutlet weak var RenterHistoryPriority: UITextField!
    @IBOutlet weak var renterHistoryType: UITextField!
    @IBOutlet weak var renterHIstoryAddress: UITextField!
    @IBOutlet weak var renterHistoryRoom: UITextField!
    @IBOutlet weak var renterHIstoryProblemDescription: UITextView!
    @IBOutlet weak var renterHistoryPreferredTimeAndDate: UITextField!
    @IBOutlet weak var renterHistoryPets: UISwitch!
    @IBOutlet weak var renterHistoryAuthorizedEntry: UISwitch!
    @IBOutlet weak var renterHIstoryPreferredContactNumber: UITextField!
    @IBOutlet weak var renterHistoryPreviouslyReported: UISwitch!

    var renterHistoryAddress: String?

    override func viewDidLoad() {
        super.viewDidLoad()   
    }

    override func viewWillAppear(_ animated: Bool) {
        renterHIstoryAddress.text = renterHistoryAddress
    }
}

当我运行代码并尝试访问该属性时,在展开Optional值时得到了意外发现的nil。我是否应该通过模型访问realm.objects函数以获取值?

0 个答案:

没有答案