Swift UIViewController 中的动态表视图
Swift dynamic tableview in UIViewController
我一直在尝试在我的 ViewController 中添加一个 table 视图,不幸的是我的 table 视图中没有显示任何数据。 numberOfSectionsInTableView , numberOfRowsInSection , cellForRowAtIndexPath 甚至没有得到 called.I尝试在 ViewController 中查看 table 视图,因为下面还有另一个控件,如标签、文本字段和 TableView。由于这些标签和文本字段,我无法使用 Table ViewController。我做了什么...
- 创建了 UIViewController 并添加了标签、文本字段等控件
- 我从对象库中拖了一个 TableView 到我的 UIViewController.
为了管理来自服务器的数据,我创建了一个模型
class Model {
var name : String
var email : String
init?(name : String , email : String)
{
self.name = name
self.email = email
} }
因为我有动态数据,所以我在 Subclass UITableViewCell 下创建了一个 swift 文件,名为 userinfoCell 并将我的标签(两个标签在 TableViewCell 中,一个用于用户名,另一个用于电子邮件)到此 class(userinfoCell).
最后,在我的 UIViewController 中,我添加了以下代码来填充我的 Table 视图。
在我的 class 定义中,我已经初始化了一个像这样的全局变量
var model = [Model]()
我创建了一个将数据添加到我的模型的函数
func loadMembers()
{
let member1 = Model(name: "Caprese Salad", email: "caprreswe@gmail.com")!
let member2 = Model(name: "Capresed", email: "pepperoni@gmail.com")!
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
}
但我得到的是空 table 视图。我的方法出了什么问题
如何在 UIViewController 中实现动态 UITableView ???
像这样修改您的 loadMembers 方法,
func loadMembers()
{
let member1 = Model(name: "Caprese Salad", email: "caprreswe@gmail.com")!
let member2 = Model(name: "Capresed", email: "pepperoni@gmail.com")!
model += [member1, member2]
// reload the table view after modifying the data source.
self.tableView.reloadData()
}
Ctrl 从 table 视图拖动到视图控制器并设置数据源和委托
然后在 loadMember()
中调用 self.tableView.reloadData()
按住控件并从 tableview 拖动到 view controller 并像这样设置数据源和委托...
我一直在尝试在我的 ViewController 中添加一个 table 视图,不幸的是我的 table 视图中没有显示任何数据。 numberOfSectionsInTableView , numberOfRowsInSection , cellForRowAtIndexPath 甚至没有得到 called.I尝试在 ViewController 中查看 table 视图,因为下面还有另一个控件,如标签、文本字段和 TableView。由于这些标签和文本字段,我无法使用 Table ViewController。我做了什么...
- 创建了 UIViewController 并添加了标签、文本字段等控件
- 我从对象库中拖了一个 TableView 到我的 UIViewController.
为了管理来自服务器的数据,我创建了一个模型
class Model { var name : String var email : String init?(name : String , email : String) { self.name = name self.email = email } }
因为我有动态数据,所以我在 Subclass UITableViewCell 下创建了一个 swift 文件,名为 userinfoCell 并将我的标签(两个标签在 TableViewCell 中,一个用于用户名,另一个用于电子邮件)到此 class(userinfoCell).
最后,在我的 UIViewController 中,我添加了以下代码来填充我的 Table 视图。
在我的 class 定义中,我已经初始化了一个像这样的全局变量
var model = [Model]()
我创建了一个将数据添加到我的模型的函数
func loadMembers()
{
let member1 = Model(name: "Caprese Salad", email: "caprreswe@gmail.com")!
let member2 = Model(name: "Capresed", email: "pepperoni@gmail.com")!
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
}
但我得到的是空 table 视图。我的方法出了什么问题
如何在 UIViewController 中实现动态 UITableView ???
像这样修改您的 loadMembers 方法,
func loadMembers()
{
let member1 = Model(name: "Caprese Salad", email: "caprreswe@gmail.com")!
let member2 = Model(name: "Capresed", email: "pepperoni@gmail.com")!
model += [member1, member2]
// reload the table view after modifying the data source.
self.tableView.reloadData()
}
Ctrl 从 table 视图拖动到视图控制器并设置数据源和委托
然后在 loadMember()
self.tableView.reloadData()
按住控件并从 tableview 拖动到 view controller 并像这样设置数据源和委托...