如何更改tableview结果数组的类型。
var results: [Group] = []
现在我将viewcontroller用于2个目的,相同的设计和相同的表,但另一个结果数组。
现在我需要在这个didSet中更改它:
var article:Article? {
didSet {
var results: [Article] = [] // something like this
getArticleOrderData()
}
}
设置文章时,将结果数组的类型更改为[Article]
。
这可能吗?
或者我应该在故事板中为文章制作另一个和另一个viewcontroller?
答案 0 :(得分:1)
声明一种协议,其中两种类型都符合并使用协议作为表视图的集合类型。
很简单的例子:
protocol Resultable {
var name : String {get set}
}
class Article : Resultable {
var name = "article"
}
class Group : Resultable {
var name = "group"
}
class MYTableViewController : UITableViewController {
var results = [Resultable]()
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return results.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let result = results[indexPath.row]
cell.textLabel!.text = result.name
return cell
}
}