使用 plist 在 table 个视图之间传递数据

Passing data between table views using plist

如何在两个 table 视图之间传递数据?我有 poet.plist 和 2 个数组:namebiography。当我 运行 应用程序时,第二个 table 视图是空的。第一个 table 视图应列出诗人,而第二个 table 视图应列出诗人的作品。

第一个class

class Poets
{
    var poetName:String = ""
    var poetImage:String = ""
    var books=[Works]()
}

第二个Class:

class Works {

    var nameWork = ""
    var workPoet = ""

    init(nameWork: String, workPoet: String) {
        self.nameWork = nameWork
        self.workPoet = workPoet
    }
}

第一个视图控制器

let worksArray = booksDict[poet.poetName as String] as! NSArray
for work in worksArray {
    let dictionaryFromArray = work as! NSDictionary
    let workObject = Works(nameWork: dictionaryFromArray["nameWork"] as! String, workPoet: dictionaryFromArray["work"] as! String)
    poet.books.append(workObject)
}

如何区分带有诗人名字的 UITableViewController 和带有诗人作品的 UITableViewController

在第一个视图控制器中

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    // ShowPoetWorks is your segue identifier which you can set in storyboard
    if segue.identifier == "ShowPoetWorks" {

        var secondVC = segue.destinationViewController as? SecondViewController
        secondVC.poetName = poetName
    }
}

在第二个视图控制器中

  • 定义 2 个字段:poetNameworkCount
  • 覆盖函数`tableView:numberOfRowsInSection

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    
        return workCount  
    }
    
  • 在viewDidLoad中,根据poetName加载诗人作品并调用tableView.reloadData()