objective-c - 为什么我不能关闭导航堆栈上的上一个 View ?

标签 objective-c ios model-view-controller

这可能会非常明显,但这里是。我有两个 ViewController,一个用 [+] 按钮显示一个人的详细信息,该按钮打开另一个 ViewController,管理该人的编辑。当要删除此人时,会显示一个警报,如果选择确定,则编辑 View 应该消失,DetailView 也应该消失/转换回 PersonsListView(下面的代码中未显示)。

我可以关闭 EditView,但也无法关闭 DetailView。

感谢任何帮助。

两个ViewControllers:

@implementation PersonDetailViewController
...
- (void)editPerson
{
    PersonDetailEditViewController *editView = [[PersonDetailEditViewController alloc] initWithTenant:self.person];
    [editView setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:editView];
    [self presentModalViewController:navController animated:YES];    
}
...
@end

@implementation PersonDetailEditViewController
...
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 1) {
        [Person deletePerson:self.person];
        NSError *error;
        [self.person.managedObjectContext save:&error];
        [[self navigationController] dismissModalViewControllerAnimated:YES];
        // *** HERE I ALSO WANT TO DISMISS THE DETAILVIEW ***
    }
}
...
@end

最佳答案

假设 PersonDetailViewController 出现在导航 Controller 中,您应该能够通过添加以下行来执行您想要的操作:

[self.navigationController popViewControllerAnimated:YES];

关于objective-c - 为什么我不能关闭导航堆栈上的上一个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8191710/

相关文章:

ios - NSMutableArray 不在图表上显示数据

php - 我可以将 MVC 设计模式应用于过程 PHP

java - 如何使用Spring Boot查询并持久化MySQL数据库中的静态对象?

PHP session 过期但页面刷新后我没有重定向

objective-c - 为什么信号不会被捕获?

iphone - iOS 中的多语言文档 (RTF) : Files, SQLite、核心数据?如何?

objective-c - 应用程序应如何向数据存储区进行身份验证?

ios - 将 NSPersistentStore 从应用程序沙箱迁移到共享组容器

ios - UIViewAnimationOptions.TransitionFlipFromLeft 第二次不显示 UIView

python - 删除 Realm ,但仍然收到此错误 : module importing failed: invalid token (rlm_lldb. py,第 37 行)文件 "temp.py",第 1 行,