Пример за внедряване на 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.