iPhoneアプリケーションでIBActionを実行した後、特定のViewControllerを表示(または非表示)したいとします。私は試しましたアクションの実行後に特定のViewControllerを表示または非表示にする
[self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];
しかし、これはアクションが実行されても何もしていないようです。
もう少し情報:
-(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];
}
}
私は、ユーザーがactionsheet上の[はい]ボタンを押すと、現在のビューが消えたいです。
は、なぜあなたは[自己dismissModal ...]を使用していない、現在表示されているのUIViewControllerを指します。ドキュメントによれば、コールは自動的にプレゼンテーションビューコントローラに転送される。ただし、プレゼンテーション・ビュー・コントローラーは通常はself.parentViewControllerであり、そこには珍しいビュー階層がない限りself.parentViewController.parentViewControllerではありません。 –