领域传递选定的类别值

时间:2018-09-07 19:00:35

标签: swift realm

我有一个正在处理的任务应用程序。用户可以创建任务,然后在其类别下创建项目。我使用领域作为我的数据存储,但是我希望能够将一些详细信息从所选类别传递到创建项视图控制器。我决定将选定的类别打印到控制台,但是它显示nil,我不知道为什么。下面是我的代码。

class CategoryModel: Object {

    @objc dynamic var id = UUID().uuidString
    @objc dynamic var name: String = ""
    @objc dynamic var color: String = ""
    @objc dynamic var isCompleted = false

    let items = List<TodoListModel>()

    override static func primaryKey() -> String? {
        return "id"
    }
}

Items VC

 var selectedCategory: CategoryModel?

 override func viewDidLoad() {
        super.viewDidLoad()
        print("Selected Category: \(String(describing: selectedCategory))")
 }

我不知道为什么它一直打印为空

2 个答案:

答案 0 :(得分:2)

因为在显示项目VC时没有给它一个值

let item = ItemsVC()  // if VC is inside IB use self.storyboard?.instantiate.....
item.selectedCategory  = // set here or inside prepareForSegue if you use segues 
// here present

答案 1 :(得分:1)

您可以通过这种方式进行解析;

Items VC

let realm = try! Realm()
var category:Results< CategoryModel>?

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

    func loadCategory(){
        category = realm.objects(CategoryModel.self)
        //tableView.reloadData()  for example
    }

//category?[indexPath.row].name    for example using