我有一个视图控制器VC1,我正在做两个操作:
- 通过调用从VC1的导航控制器推送另一个视图控制器VC2
[VC1.navigationController pushViewController: animated:YES];
- 通过调用从VC1呈现另一个视图控制器VC3
*UINavigationController navController = [[UINavigationController alloc] initWithRootViewController:VC3]; [VC1 presentViewController:navController animated:YES completion:nil];
现在,当我从VC2来到VC1时,我正在打电话
[VC2.navigationController popViewControllerAnimated:YES];
从VC3到VC1我正在打电话
[VC3.navigationController dismissViewControllerAnimated:YES completion:nil];
我的问题是,当我回到VC1时,我怎么知道我是来自VC2(通过解雇)还是VC3(通过弹出)?
注意:VC1作为子视图控制器加载到父视图控制器VC4中 .
1 回答
最好的方法是让childViewController回调给呈现视图控制器 . 通过这样做,childViewController将不需要知道它是以模态方式呈现还是在导航堆栈等中的实现细节 .
使用块它看起来像
你可以设置这个块这样的东西
现在你以前在哪里打电话
你改为打电话
您将要关联的任何逻辑从完成处理程序内的特定viewController返回