Ios 目标C-检测上一个模态视图的实例

Ios 目标C-检测上一个模态视图的实例,ios,objective-c,iphone,xcode,Ios,Objective C,Iphone,Xcode,我使用的是标准代码,用于当前和退出模式segue [self dismissViewControllerAnimated:YES completion:nil]; 我想在当前视图的完成区域执行上一个视图的某些方法 例如,前一个视图是一个菜单,上面有个人资料图片和其他内容,而当前视图是用于更改个人资料图片的视图。当我关闭当前视图时,我想更新菜单视图(上一个视图)中配置文件的UIImageView 是否可以获取上一个视图的实例 通常情况下,第二个视图控制器定义一个协议和采用该协议的委托,第一个视图

我使用的是标准代码,用于当前和退出模式segue

[self dismissViewControllerAnimated:YES completion:nil];
我想在当前视图的完成区域执行上一个视图的某些方法

例如,前一个视图是一个菜单,上面有个人资料图片和其他内容,而当前视图是用于更改个人资料图片的视图。当我关闭当前视图时,我想更新菜单视图(上一个视图)中配置文件的
UIImageView


是否可以获取上一个视图的实例

通常情况下,第二个视图控制器定义一个协议和采用该协议的委托,第一个视图控制器将自己作为第二个视图控制器的委托。现在,第二个视图控制器有一个对第一个视图控制器的引用(因为它是它的委托),并保证有一个或多个方法可以调用以将信息传递回第一个视图控制器(因为委托采用了协议)

接下来的问题是,第一个视图控制器何时将自身设置为第二个视图控制器的委托。有两种情况:

  • 第一个视图控制器在代码中创建第二个视图控制器。显然,它现在有了对第二视图控制器的引用,并且可以将自己设置为其委托

  • 您使用的是故事板,这是一个模态演示序列。在这种情况下,在第一个视图控制器中执行
    prepareforsgue
    。现在您可以获得segue的
    destinationViewController
    ——这是第二个视图控制器,因此第一个视图控制器现在可以将自己设置为第二个视图控制器的委托


有关示例,请参阅我的书中本节的结尾:我需要如何初始化委托?我的意思是-我知道如何设置代表等。。但是在第二个视图中,我需要编写“previousViewInstance.delegate=self”,但是如何获取previousViewInstance?(对不起,如果我不太清楚:)这个答案帮了我一大忙顺便说一句,马特,你是马特·纽伯格吗?如果是这样的话,那就感谢你提供了世界上最好的编程书籍:)@AsiGivati我将稍微扩展一下我的答案来回答这个问题。