Использование табличного представления в контроллере просмотра и его подключение

118
17

Я новичок в xcode и Objective-C. Вот моя проблема:

    У меня есть контроллер вида с кнопками и ссылками на другие контроллеры. На этом контроллере представления я добавил табличное представление, в котором ячейки будут использоваться как форма ячейки будут иметь текстовые поля и метки

При попытке установить это и построить его, это дает мне ошибку, говоря, что мне нужно каким-то образом связать мой табличный вид с контроллером.

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

Может ли кто-нибудь сказать мне, как, или связать меня с простым руководством по этому поводу?

благодаря

спросил(а) 2021-01-25T16:32:10+03:00 4 месяца, 4 недели назад
1
Решение
63

Самый простой способ - создать новый Swift или Objective-C Class и расширить UITableViewController с ним. Это создаст вам идеальный пример кода о том, как писать UITableView DataSource и Delegate, который можно просто скопировать.

После этого настройте свойства делегата и источника данных UITableViews самостоятельно в viewdidload и реализуйте UITableViewDataSource, UITableViewDelegate.

редактировать

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var myTable: UITableView!
var myDataArray: NSArray!

override func viewDidLoad() {
super.viewDidLoad()
myDataArray = NSArray(objects: "Peter", "Paul", "Marry")
myTable.dataSource = self
myTable.delegate = self
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

//MARK: TableView DataSource
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myDataArray.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell

if (cell == nil) {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
}

cell?.textLabel.text = myDataArray.objectAtIndex(indexPath.row) as NSString

return cell!
}

//MARK: TableView Delegate
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
}

Я быстро подключил вам код Swift Example, где вы можете увидеть, как подключить представление таблицы, с DataSource и Delegate вашего класса.

ответил(а) 2021-01-25T16:32:10+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема