2015-12-28 1 views
1

Я пытаюсь добавить табличное представление в свой ViewController, к сожалению, в моем представлении таблицы нет данных. numberOfSectionsInTableView, numberOfRowsInSection, cellForRowAtIndexPath даже не получают called.I пытались TableView внутри ViewController как есть еще управления, как метки, текстового поля и TableView под .because этих лейбла и текстовых полей я не могу использовать TableViewController , что я сделал ...Быстрое динамическое табличное представление в UIViewController

  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 и подключен мой метки (два label внутри 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 I звонки эта функция

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 
    } 

Но я получаю пустой вид на стол. Что пошло не так в моем подходе

Как я могу реализовать динамический UITableView внутри UIViewController ???

+0

у вас установлен источник данных и делегатов 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

Отложено управления и перетаскивания из таблицы, чтобы просмотреть контроллер и установить источник данных и делегировать как это ...

enter image description here