/ / Pokaż lub odrzuć określony ViewController po wykonaniu akcji - objective-c, ios, uitableview

Pokaż lub odrzuć określony ViewController po wykonaniu akcji - target-c, ios, uitableview

Chcę pokazać konkretny kontroler ViewController (lub odrzucić) widok po wykonaniu IBAction w mojej aplikacji na iPhone'a. Próbowałem

[self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];

Jednak po wykonaniu czynności nie wydaje się to nic robić.

Trochę więcej informacji:

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

{
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
if (selectedCell.tag == 1)
{

UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"Are you sure you want to delete this project?"
delegate:self cancelButtonTitle:@"No" destructiveButtonTitle:@"Yes, I’m Sure" otherButtonTitles:nil];
[actionSheet showInView:self.view];


}

}

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex != [actionSheet cancelButtonIndex])
{

[self.tableView beginUpdates]; // Avoid  NSInternalInconsistencyException

// Delete the project object that was swiped
Project *projectToDelete = self.project;
NSLog(@"Deleting (%@)", projectToDelete.name);
[self.managedObjectContext deleteObject:projectToDelete];
[self.managedObjectContext save:nil];

}
}

Chcę, aby bieżący widok zniknął, gdy użytkownik naciśnie przycisk Tak w arkuszu działań.

Odpowiedzi:

1 dla odpowiedzi № 1
// Assume we are inside a UIViewController (or a subclass)

DestinationController *destinationController = [[DestinationController alloc] init];
[self presentModalViewController:destinationController animated:YES];

...

// Assume we are now in destination controller

// Dismiss
[self dismissModalViewControllerAnimated:YES];

1 dla odpowiedzi nr 2

Musiałem wrócić do pierwszego (lub głównego) widoku w moim stosie nawigacyjnym.

Wszystko, co musiałem zrobić, to użyć tej metody:

[controller.navigationController popToRootViewControllerAnimated:YES];

0 dla odpowiedzi № 3

Innym sposobem pokazania i odrzucenia kontrolera widoku jest użycie pushViewController i popViewController.

Aby wyświetlić viewController:

- (void) pushViewController: (UIViewController *) viewController animated: (BOOL) animated; // Używa poziomego przejścia slajdu. Nie działa, jeśli kontroler widoku jest już na stosie.

I zwolnić:

- (UIViewController *) popViewControllerAnimated: (BOOL) animated; // Zwraca wystrzelony kontroler.