UITableview добавить данные из другого класса - PullRequest
0 голосов
/ 14 июня 2011

Хорошо, поэтому у меня есть UITableView и UINavigationController с UIBarButtonSystemItemAdd, и когда нажата кнопка добавления, пользователь переносится в новое представление с некоторыми полями.Я хочу иметь возможность получать информацию, которую пользователь вводит в эти поля, и отображать ее в виде таблицы.Я хочу, чтобы пользователь мог добавлять столько элементов, сколько он хочет.

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

Каков наилучший способ сделать это.Я попробовал NSUserDefaults и кучу arrays, но это стало действительно грязно.Благодаря.

Ответы [ 3 ]

1 голос
/ 14 июня 2011

Несколько способов справиться с этим.Самый простой и лучший способ - использовать презентацию модели вашего контроллера представления, а не нажимать на нее, как это делает приложение для контактов на iPhone.Таким образом, вы можете получить доступ ко всем своим данным с помощью контроллера табличного представления вместо того, чтобы пытаться передавать их туда и обратно.как только пользователь завершит работу с контроллером представления создания, представление модели будет отклонено, и вы сможете добавить его из таблицы.Документ разработчика: http://developer.apple.com/library/ios/ipad/#featuredarticles/ViewControllerPGforiPhoneOS/AboutViewControllers/AboutViewControllers.html%23//apple_ref/doc/uid/TP40007457-CH112-SW16

0 голосов
/ 14 июня 2011

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

Теперь, если вы не хотите использовать стиль представления модели, вы можете использовать NSUserDefault.

 Thats what I was trying to do, but the user could ultimatly enter in hunderds of data.

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

[NSUserDefaults resetStandardUserDefaults];

Еще одна вещь, которую вы можете сделать, это создать переменную в Delegate и сохранить данные в ней и получить их в табличном представлении,но я не рекомендую вам делать это.

0 голосов
/ 14 июня 2011

Правильно ли вы использовали NSUserDefaults? Используйте как это.

В одном классе:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]
[prefs setInteger:1 forKey:@"integerKey"];

В другом классе:

 NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
 NSInteger myInt = [prefs integerForKey:@"integerKey"];

//Now myInt has the value 1.

Вы также можете иметь NSNotification и передать тип NSDictionary:

NSDictionary *info = [NSDictionary dictionaryWithObject:@"Brad Pitt" forKey:@"User Name"];


[[NSNotificationCenter defaultCenter] postNotificationName:@"UserNameNotification" object:self userInfo:info];

И тогда вы можете добавить наблюдателей и написать метод для соответствующего селектора.

...