Добавление новой ячейки в табличное представление из другого представления - PullRequest
1 голос
/ 22 октября 2011

Мне было интересно, есть ли способ, которым я мог бы отображать табличное представление в одном представлении, тогда, когда вы нажмете кнопку «Добавить», оно перевернет вас во второе представление, где вы введете имя, которое вы хотите, чтобы новый текстовая метка ячейки, чтобы сказать. Затем вы нажмете кнопку «Готово», и она вернет вас к первому виду, где будет самый новый элемент. И вы сможете добавить столько клеток, сколько захотите.

Ответы [ 2 ]

1 голос
/ 22 октября 2011

Какао и касание Какао основаны на шаблоне MVC.Это означает, что есть отдельные слои, каждый из которых несет ответственность - модель, представление и контроллер.

Модель - это данные и операции с этими данными, представление - это то, что вы видите, и контроллеры выполняют посредничество между ними.

Итак, в вашем примере вы не добавили бы ячейкус другой точки зрения.Это нарушает фундаментальную закономерность.Вместо этого, то, что произойдет, это представление, при котором добавление данных будет вызывать модель, чтобы добавить элемент, и представление исчезнет.Затем, когда он вернется к представлению, в котором перечислены элементы, он запросит модель (которая содержит новый объект), а список будет содержать объект.

Два представления отделены и имеют общую модель,Это позволяет вам изменять интерфейсы и хранилище, не нарушая большую часть вашего приложения, потому что они не связаны между собой.

Например, у вас может быть контроллер табличного представления, который получает свой список от запроса вашего класса модели.Класс вашей модели может быть одноэлементным ([MyModel sharedInstance]), который предлагает такой метод:

NSArray* items = [model getItems]; 

Этот метод может быть поддержан Sqlite (поиск fmdb), хранилищем CoreData, простым файлом или дажев данных памяти, как NSMutableArray.Ваш UITableViewController реализует методы обратного вызова, вызывая вашу модель.

Затем вы предлагаете кнопку Add, которая вызывает это для модального отображения вашего AddItemController.

[self presentModalViewController:addItemController];

После того, как пользователь предоставит данные наформы и нажимает кнопку Готово / Сохранить, вы вызываете вашу модель, чтобы сохранить элемент, который является классом с данными:

[[MyModel sharedInstance] saveItem:item];

, который записывает в ваше хранилище.

Затем, послевернитесь к своему UITableViewController, в viewWillAppear вы запросите данные и вызовите представление таблицы для reloadData;

_items = [[MyModel sharedInstance] getItems];
[[self tableView] reloadData];

Теперь в таблице показаны только что добавленные вами данные.

Есть другие вариантыно это основной с разделением MVC.

0 голосов
/ 22 октября 2011

Я просто хотел бы добавить, изложив это простыми словами ... Какой бы источник вы ни использовали для своей таблицы для загрузки ячеек (массив, словарь, класс, вы называете это ...), затем вы создаете кнопку «Добавить», заставляете ее нажимать на новый контроллер представления, затем, когда вы нажимаете « Готово »на панели навигации, добавьте свойство объекта (информацию о текстовом поле имени или что вам нужно) к источнику, из которого вы загружаете данные табличного представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...