Пример за внедряване на Table View iOS, Apple, Xcode разработчик

Нека създадем нов Xcode проект, базиран на шаблона за приложение за един изглед. Нека преобразуваме нашия основен изглед в изглед в навигационната йерархия, като изберем контролера за изглед в Main.storyboard и изберете Редактор->Вграждане в>Навигационен контролер. Нашият контролер за изглед вече е основата на навигационния стек.

Нека поставим елемента Table View в основния изглед, сега добавете клетка за Table View Cell към Table View. Изберете клетка и й задайте стойност за Identifier cell1.

Източник на данни

Нека създадем източник на данни за клетка от таблица, наследена от NSObject. Нека го наречем dataObj.

Списък с данниObj.h

Файлът за изпълнение dataObj.m е оставен празен.

Внедряване на протокола UITableViewDataSource

Нека да отидем до заглавния файл ViewController.h и да го редактираме съответно.

Списък на ViewController.h

Списък на файла ViewController.m

Когато прозорецът за изглед се зареди, създаваме десен бутон в навигационния елемент на лентата за навигация и му присвояваме манипулатор на събитие addDataToTable: click.

Отидете на Interface Builder, обвържете изгледа на таблица към IBOutlet UITableView *tableView1 и присвоете източника на данни на нашия изглед на таблица към контролера на изгледа ViewController или можете да го направите програмно в метода viewDidLoad, като добавите реда tableView1.dataSource = self; .

Нека стартираме приложението в симулатора. Приложението ще стартира с празна таблица и при натискане на бутона „Добави“ в навигационната лента ще се добави ред с текст „Нов автомобил“. Всеки ред съответства на свойството carName от обекта dataObj, разположен в dataArray.

Така че внедрихме най-простия източник на данни за табличен изглед,съдържаща една секция.

Внедряване на UITableViewController

Отиваме в Interface Builder и добавяме елемент TableViewController, създаваме преход от клетката Prototype Cells в основния изглед към TableViewController с ефекта на прехода на шоуто.

Отидете до новопоставения TableViewController и в инспектора на атрибути задайте параметъра Content на Static Cells, т.е. нашият табличен изглед ще бъде внедрен статично. В полето Секции задайте 2, сега 2 секции са внедрени в нашата таблица. Изберете Раздел-1 и въведете 1 в полето Редове. Сега имаме таблица с две статични секции, първата има 1 ред, втората има 3.

Нека създадем нов клас, базиран на UITableViewController, без да създаваме xib и да го наречем dataTableViewController. Нека свържем нашия Table View Controller в Storyboard към новосъздадения клас.

Тук сме декларирали три указателя към елементите на радио бутона, които ще добавим към нашите клетки от втория раздел. И създаваме връзка от указатели към самите клетки, създадени в Interface Builder.

Отидете на dataTableViewController.m и редактирайте метода за инициализация при зареждане на контролера:

Когато зареждате контролера, свойството с източника на данни dataObj* dObj1 трябва да съдържа самия източник на данни, за да направим това, се връщаме към ViewController.m, добавяме импортирането на заглавката на новосъздадения клас #import "dataTableViewController.h" и добавяме метода:

Този метод се извиква винаги, когато контролерът за навигация избута текущия контролер за изглед надолу в стека, поставяйки destinationViewController отгоре. Тъй като имаме само един преход от този изглед към друг, ние не се интересуваме от свойството идентификатор на segue обекта и тъй като сме сигурни, че destinationViewController е екземпляр на класаdataTableViewController, ние просто прехвърляме типа данни и подаваме източника на данни към заредения dataTableViewController, съответстващ на избраната клетка.

Нека стартираме приложението и след като добавим нов ред в първата таблица, като щракнем върху създадената клетка, отиваме на втората таблица, която изглежда така:

Това е само пример за използване на Table View и Table View Controller, той не предоставя пример за редактиране, тъй като изпълнението му е по-правилно въз основа на шаблона Master-Detail.