UIViewController中的Swift动态tableview
问题描述:
我一直在尝试在我的ViewController中添加一个tableview,但不幸的是我的表视图中没有显示任何数据。 numberOfSectionsInTableView,numberOfRowsInSection,的cellForRowAtIndexPath甚至没有得到called.I试图内的ViewController的tableview因为有像标签,文本字段和TableView中这些标签的。因为下方和文本字段我无法使用TableViewController另一个控制。我做了什么......UIViewController中的Swift动态tableview
- 创建一个UIViewController和添加的控件类似标签,文本字段等
- 从对象库我拖着一个TableView中进我的UIViewController。
-
从服务器管理我的数据我创建了一个模型
class Model { var name : String var email : String init?(name : String , email : String) { self.name = name self.email = email } }
,因为我有动态数据,为小区我下的子类的UITableViewCell创建一个快捷文件名为userinfoCell并连接我的标签(二标签的内部TableViewCell一个用于用户名,另一个用于电子邮件)到这个类(userinfoCell)。
最后在我的UIViewController中,我添加了下面的代码来填充我的表格视图。
在我的类定义我已经初始化这样
var model = [Model]()
我创建了一个函数,将数据添加到我的模型
func loadMembers()
{
let member1 = Model(name: "Caprese Salad", email: "[email protected]")!
let member2 = Model(name: "Capresed", email: "[email protected]")!
model += [member1, member2]
}
我viewDidLoad中我调用了一个全局变量此功能
override func viewDidLoad() {
super.viewDidLoad()
loadMembers()
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return model.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Members", forIndexPath: indexPath) as! userinfoCell
let member = model[indexPath.row]
cell.MemberName.text = member.name
cell.MemberEmail.text = member.email
return cell
}
但我得到一个空表视图。我的方法出了什么问题
我该如何在UIViewController中实现一个动态的UITableView?
答
修改您的loadMembers方法就是这样,
func loadMembers()
{
let member1 = Model(name: "Caprese Salad", email: "[email protected]")!
let member2 = Model(name: "Capresed", email: "[email protected]")!
model += [member1, member2]
// reload the table view after modifying the data source.
self.tableView.reloadData()
}
你有没有设置datasource和tableview的代表? –