我使用的是present&消除模式分段
[self dismissViewControllerAnimated:YES completion:nil];
我想在当前视图的完成区域中执行上一个视图的一些方法。
例如,上一个视图是一个包含配置文件图片和更多内容的菜单,而当前视图是用于更改配置文件图片的视图。当我关闭当前视图时,我想在菜单视图(上一个视图)更新配置文件的UIImageView
。
是否可以获取上一个视图的实例?
通常情况下,第二个视图控制器定义一个协议和一个采用该协议的委托,第一个视图控制器将自己作为第二个查看控制器的委托。现在,第二个视图控制器有一个对第一个视图控制器的引用(因为它是它的委托),并保证有一个或多个方法可以调用以将信息交回第一个(因为委托采用了协议)。
当第一个视图控制器将自己设置为第二个视图控制器的委托时,的问题就出现了。有两种情况:
-
第一视图控制器在代码中创建第二视图控制器。显然,它现在有了对第二个视图控制器的引用,并且可以将自己设置为其委托。
-
你正在使用一个故事板,这是一个模态演示片段。在这种情况下,在第一个视图控制器中实现
prepareForSegue
。现在,您可以获得segue的destinationViewController
,这是第二个视图控制器,因此第一个视图控制器现在可以将自己设置为第二个查看控制器的代理。