2015-12-28 188 views
1

我一直在尝试在我的ViewController中添加一个tableview,但不幸的是我的表视图中没有显示任何数据。 numberOfSectionsInTableViewnumberOfRowsInSection的cellForRowAtIndexPath甚至没有得到called.I试图内的ViewController的tableview因为有像标签,文本字段和TableView中这些标签的。因为下方和文本字段我无法使用TableViewController另一个控制。我做了什么......UIViewController中的Swift动态tableview

  1. 创建一个UIViewController和添加的控件类似标签,文本字段等
  2. 从对象库我拖着一个TableView中进我的UIViewController。
  3. 从服务器管理我的数据我创建了一个模型

    class Model { 
    
    var name : String 
    var email : String 
    
    init?(name : String , email : String) 
    { 
        self.name = name 
        self.email = email 
    } } 
    
  4. ,因为我有动态数据,为小区我下的子类的UITableViewCell创建一个快捷文件名为userinfoCell并连接我的标签(二标签的内部TableViewCell一个用于用户名,另一个用于电子邮件)到这个类(userinfoCell)。

  5. 最后在我的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?

+0

你有没有设置datasource和tableview的代表? –

回答

0
从表视图

Ctrl拖动查看器,并设置数据源和委托

enter image description here

然后调用self.tableView.reloadData()loadMember()

0

修改您的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() 
} 
0

保持控制并从tableview拖动到视图控制器并设置数据源和委托像这样...

enter image description here

相关问题