Как передавать значения с одной страницы на другую страницу и отображать значения в текстовой метке ячейки страницы в iPhone?

#iphone #objective-c #tableview

#iPhone #objective-c #просмотр таблицы

Вопрос:

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

Как это возможно? Как я мог бы заполнить ячейку tableview значениями, введенными в текстовом поле и textview?

Ответ №1:

Все зависит от того, как данные хранятся в вашем TableView. Например, если у вас есть файл plist, вы должны перезаписать этот файл при отправке нового значения.

После этого на :

 - (void)viewWillAppear:(BOOL)animated {}
  

Вы должны перезагрузить файл plist и вызвать [self.tableView reloadData];

Однако есть другой метод. Если у вас всего несколько значений, вы можете использовать ссылку на класс NSUserDefault по умолчанию для хранения данных в вашем приложении.

Ответ №2:

Вам нужно использовать следующую функцию делегирования:

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

objInf.nameLable =[NSString stringWithFormat:@"Hello %@ Have a Good Day :)",[listData objectAtIndex:indexPath.row]];
NSLog(@"Next View Value =%@",[listData objectAtIndex:indexPath.row]);
NSLog(@"Next View Value =%@",objInf.nameLable);
[self presentModalViewController:objInf animated:YES];
}
  

Как
objInf — это объект второго класса, а nameLable — это NSString, который вы можете задать как текст метки вашего второго класса, где вы хотите отобразить данные..

Комментарии:

1. я создал пользовательскую ячейку tableview и хочу, чтобы при вводе значений в textfield и textview другого класса это значение отображалось в ячейке tableview

2. О, я предоставил вам часть счетчика .. но вы можете добиться этого, выполнив то же самое в обратном порядке: например, нажав кнопку отправки, перенесите все данные в свой табличный вид, а затем в cell.textLabel.text передайте эти данные .. это сработает..

Ответ №3:

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

помните, что вам нужен однотонный объект, если вы создаете новый объект, то он повторно инициализирует свойства.

итак, используйте это для создания объекта этого входного класса.

 YourClass *obj= (YourClass *)[self.navigationController.viewControllers objectAtIndex: [self.navigationController.viewControllers count]-2];
  

это дает объект из стека навигации.

Ответ №4:

Этого можно достичь двумя способами.

Во-первых, у вас может быть 2 свойства NSString в другом ViewController. 1 Способ присвоения данных в этом. Нравится

  • @property (неатомный, сохранить) NSString *textfieldValue; и синтезировать его.
  • @property (неатомный, сохранить) NSString *textviewValue; и синтезировать его.
 -(void) contentToDisplay: (NSString *)pTxtFieldValue txtViewValue(NSString*)pTxtViewValue{
    self.textfieldValue = pTxtFieldValue;
    self.textviewValue = pTxtViewValue;
}
  

При переключении на другой ViewController путем отправки используйте его объект для присвоения текста типа

  • [objViewController contentToDisplay:@»textfieldvalue» txtViewValue:@»textviewValue»];

Надеюсь, это поможет.