2015-01-15 5 views
0

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

Первый контроллер сохраняет информацию, введенную пользователем в текстовых полях в массиве. Второй контроллер отображает информацию в пользовательской ячейке таблицы. Третий контроллер такой же, как первый, с той лишь разницей, что он будет использоваться не для хранения данных, а для обновления данных. Теперь я хочу обновить данные ячейки таблицы. Я создал кнопку обновления, нажав кнопку «Я перейду на третий контроллер».

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

Как я могу это достичь?

ответ

0

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

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath { 
    MyThirdViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ThirdViewController"]; 
    vc.dataToDisplay = self.myDataArray[indexPath.row]; 
} 

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

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    //if your data is an array 
    self.firstTextField.text = self.dataToDisplay[0]; 
    self.secondTextField.text = self.dataToDisplay[1]; 
    //and so on 
    //if your data is a dictionary 
    self.firstTextField.text = self.dataToDisplay[@"name"]; //for string objects 
    self.secondTextField.text = [self.dataToDisplay[@"age"] integerValue]; //for integer values 
} 
+0

Я сделал это, как это, создал еще один массив для хранения информации, но как я могу получить объект из этого массива для отображения в текстовом поле? –

+0

Я обновил свой ответ –

+0

Я получаю сообщение об ошибке «нераспознанный селектор, посланный экземпляру 0x8e18ff0» Также, если массив состоит из одного объекта с несколькими датами, например, имени, возраста, числа. Если один объект в массиве содержит эту информацию, как ее можно сохранить в соответствующих текстовых полях –

0
//in your third viewcontroller.h 
@property NSString * textfieldname; 
@property NSString * textfieldage; 

//in your second viewcontroller.m 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

if([[segue identifier] isEqualToString:@"identifiername"]){ 

NSIndexPath *ip = [yourtablename indexPathForSelectedRow]; 
thirdviewcontrollerr *targetVC = [segue destinationViewController]; 

    targetVC.textfieldname=[[arrayname objectatindex:ip.row]valueforkey:name]; 
    targetVC.textfieldage=[[arrayname objectatindex:ip.row]valueforkey:age]; 
//in your thirdviewcontroller.m 
nametextfield.text=_textfieldname; 
agetextfield.text=_textfieldage; 
+0

Я получаю сообщение об ошибке «непризнанный селектор, отправленный в экземпляр 0x8e18ff0» Также, если массив состоит из одного объекта с несколькими датами, например, имени, возраста, номера. Если один объект в массиве содержит эту информацию, как ее можно сохранить в соответствующих текстовых полях –

Смежные вопросы