У меня есть табличка для ввода ингредиентов рецепта в приложении для рецептов. Я хочу, чтобы иметь возможность вводить ингредиенты в ячейке tableview, а затем сохранять его для отображения в другом контроллере представления - UILabel (динамически созданный).Редактируемый вид стола
Я нашел код для редактирования таблицы, где данные могут быть вставлены и удалены, но код не может быть введен в ячейку tableview.
Есть ли способ ввода ячейки таблицы? Каков наилучший способ сделать это?
Кроме того, все введенные данные должны храниться в базе данных с использованием основных данных.
Вот скриншот моего раскадровки:
TableView в AddRecipeViewController, где я хочу, чтобы ввести данные. Когда я нажимаю save, данные должны отображаться в RecipeDetailViewController Ingredients UIView.
Update:
Я создал IngrdientsTableViewCell класс для пользовательских ячейки с UITextField для ввода текста. Но когда я компилирую, tableview не отображает текстовое поле для ввода. Я понятия не имею, что я делаю неправильно. Пожалуйста помоги!
Обновленный код:
IngrdientsTableViewCell.h
@interface IngredientsTableViewCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UITextField *ingredientTextField;
@end
IngrdientsTableViewCell.m
- (void)awakeFromNib
{
// Initialization code
self.ingredientTextField = [[UITextField alloc]initWithFrame:CGRectMake(5, 5, 320, 39)];
self.ingredientTextField.autoresizingMask=UIViewAutoresizingFlexibleHeight;
self.ingredientTextField.autoresizesSubviews=YES;
self.ingredientTextField.layer.cornerRadius=10.0;
[self.ingredientTextField setBorderStyle:UITextBorderStyleRoundedRect];
[self.ingredientTextField setPlaceholder:@"Type Data Here"];
}
AddRecipeViewController.m
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.ingredientItems.count;
}
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Ingredient Cell";
IngredientsTableViewCell *ingredientCell = [self.ingredientsTableView dequeueReusableCellWithIdentifier:cellIdentifier];
// NSManagedObjectContext *managedObject = [self.ingredientItems objectAtIndex:indexPath.row];
if (ingredientCell == nil)
{
ingredientCell = [[IngredientsTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
ingredientCell.accessoryType = UITableViewCellAccessoryNone;
}
[ingredientCell addSubview:ingredientCell.ingredientTextField];
return ingredientCell;
}
Спасибо за любой Помогите.
Просто добавьте UITextView в прототип вашей ячейки. При редактировании останавливается обновление модели данных. Если все ваши контроллеры используют datamodel, все будет автоматически обновляться. –
Я попытался добавить UITextField, а также UITextView в ячейку прототипа в раскадровке. Он дает следующую ошибку: Неверная конфигурация: соединение «componentsTextView» не может содержать объект-прототип в качестве адресата. –
Создали ли вы классы для своих прототипов. Если не создать класс для каждого типа ячейки и установить класс в xcode в инспекторе класса. Затем вы должны иметь возможность CTRL перетащить ваш UITextField в заголовок для класса ячейки для создания IBOutlets. Что вы делаете, чтобы получить ошибку подключения? –