Я работаю над приложением, в котором есть корзина для покупок.Когда я добавляю товар в свою корзину, моя кнопка модально переходит к контроллеру табличного представления.Затем, когда я выбираю строку, модальный контроллер представления должен быть отклонен.Я пытался реализовать это с помощью моего делегата.Вот мой код:
(нерелевантный код опущен)
ItemsTableViewController (список продуктов на выбор)
//the header file
@class ItemsTableViewController;
@protocol ItemsTableViewControllerDelegate <NSObject>
- (void) itemsTableViewController: (ItemsTableViewController *)sender
didSelectProduct: (Product *) aProduct;
@end
@interface ItemsTableViewController : CoreDataTableViewController
@property (nonatomic, strong) UIManagedDocument *itemDatabase;
@property (nonatomic, weak) id <ItemsTableViewControllerDelegate> delegate;
@end
// фрагменты из реализации
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
Product *item = [self.fetchedResultsController objectAtIndexPath:indexPath];
[self.delegate itemsTableViewController:self didSelectProduct:item];
NSLog(@"DID SELECT ROW AT index %d with name %@", indexPath.row, item.name);
}
// вот моя корзина покупок, делегат ItemsTableViewController
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"Show Products List"]){
ItemsTableViewController *itemsTVC = (ItemsTableViewController *)segue.destinationViewController;
itemsTVC.delegate = self;
}
}
- (void) itemsTableViewController:(ItemsTableViewController *)sender didSelectProduct:(Product *)aProduct{
//adds the product in the shopping cart
[self.shoppingCart addObject:aProduct];
[self.products reloadData];
[self dismissModalViewControllerAnimated:YES];
NSLog(@"from the delegate got product %@", aProduct.name);
}