#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»];
Надеюсь, это поможет.