繁体   English   中英

UIViewController中的Swift动态Tableview

[英]Swift dynamic tableview in UIViewController

我一直试图在ViewController中添加一个tableview,不幸的是,我的table view中没有显示数据。 numberOfSectionsInTableViewnumberOfRowsInSectioncellForRowAtIndexPath甚至都没有被调用。我在ViewController中尝试了tableview,因为下面还有另一个控件,如label,text field和TableView。由于这些label和text字段,我无法使用TableViewController。 我做了什么 ...

  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. 因为我有动态数据,所以为该单元格创建了一个名为userinfoCell的子类UITableViewCell下的swift文件,并将我的标签(TableViewCell内部有两个标签,一个用于用户名,另一个用于电子邮件)连接到该类(userinfoCell)。

  5. 最后,在我的UIViewController中,添加了以下代码来填充表视图。

在我的类定义中,我已经初始化了一个像这样的全局变量

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
    }

但是我得到一个空表视图。 我的方法出了什么问题

如何在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从表视图拖动到View控制器并设置数据源和委托

在此处输入图片说明

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

按住控件并从tableview拖动到视图控制器,然后像这样设置数据源和委托...

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM