3D Touch Peek And Pop en UITableViewCell Objetivo C Code. (Force Touch)

Necesito habilitar la funcionalidad Peek And Pop en un UITableViewCell en el objective c mediante el uso de fuerza táctil. Y también necesito mostrar algunas acciones bajo la vista peek como la aplicación de correo pnetworkingeterminada. Soy nuevo en iOS y por favor ayúdame a llegar allí.

Efecto Peek And Pop en una tabla ViewCell y colección View Cell con acciones

1) Debe dirigirse a la class viewController de la persona que llama como UIViewControllerPreviewing Delegate

@interface MyTableViewController ()

2) Cree una propiedad @ para almacenar la información.

@property (nonatomic, strong) id previewingContext; 

3) Llamar al método forceTouchIntialize en ViewDidLoad

 - (void)viewDidLoad { [super viewDidLoad]; [self forceTochIntialize]; } 

4) Comprobar Force Touch disponible o no

 -(void)forceTouchIntialize{ if ([self isForceTouchAvailable]) { self.previewingContext = [self registerForPreviewingWithDelegate:self sourceView:self.view]; } } - (BOOL)isForceTouchAvailable { BOOL isForceTouchAvailable = NO; if ([self.traitCollection respondsToSelector:@selector(forceTouchCapability)]) { isForceTouchAvailable = self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable; } return isForceTouchAvailable; } 

5) Especifique el controller de vista con qué contenido queremos get una vista previa (PARA PEEK)

 - (UIViewController *)previewingContext:(id<UIViewControllerPreviewing> )previewingContext viewControllerForLocation:(CGPoint)location{ CGPoint cellPostion = [yourTableView convertPoint:location fromView:self.view]; NSIndexPath *path = yourTableView indexPathForRowAtPoint:cellPostion]; if (path) { UITableViewCell *tableCell = [yourTableView cellForRowAtIndexPath:path]; //Pushing to a nib File PushViewController *previewController = [[PushViewController alloc] initWithNibName:@"PushViewController" bundle:nil]; //To Pass data to Preview ViewController // id temp = [yourDataArray objectAtIndex:path.row]; // PushViewController.anyObject=temp; previewingContext.sourceRect = [self.view convertRect:tableCell.frame fromView: yourTableView ]; return previewController; } return nil; } 

6) POP en una prensa profunda (PARA POP)

 -(void)previewingContext:(id )previewingContext commitViewController: (UIViewController *)viewControllerToCommit { [self.navigationController showViewController:viewControllerToCommit sender:nil]; } 

7) Cuando el controller se asomó y desliza hacia arriba, si desea agregar botones como eliminar, archive este método en su vista previa ViewContrller (En este ejemplo, "PushViewController")

 - (NSArray<id> *)previewActionItems { UIPreviewAction *previewAction1 = [UIPreviewAction actionWithTitle:@"delete" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction *action, UIViewController *previewViewController){ }]; UIPreviewAction *previewAction2 = [UIPreviewAction actionWithTitle:@"archive" style:UIPreviewActionStyleDefault handler:^(UIPreviewAction *action, UIViewController *previewViewController){ }]; return @[previewAction1,previewAction2]; }