我想这就是你要找的,
[self dismissViewControllerAnimated:YES completion:^{
[self.mainController aMethod];
}];
在上面的代码中,您需要self
在块外部声明并将其用作,
__block SecondViewController *object = self;
[self dismissViewControllerAnimated:YES completion:^{
[object.mainController aMethod];
}];
只是为了避免self
被阻止。
更新:
现在有问题了。您需要mainController
在 .h 文件中声明为属性secondViewController
。之后,当您展示secondViewController
from时maincontroller
,您需要将其设置为,
secondViewController.maincontroller = self;
[self presentViewController:secondViewController animated:YES completion:Nil];
在你的SecondViewController.h
档案中,
@property(nonatomic, assign) MainController *mainController;
在你的SecondViewController.m
档案中,
@synthesis mainController;
更新 2:
如果您不想声明maincontroller
为属性,请尝试此操作。我不确定这是否是正确的做法。但它看起来像以前工作。
MainController *mainController = (MainController *)[self.view.superview nextResponder];
[self dismissViewControllerAnimated:YES completion:^{
[mainController aMethod];
}];
更新 3(建议):
这应该适合你。核实。
MainController *mainController = (MainController *)self.parentViewController;
[self dismissViewControllerAnimated:YES completion:^{
[mainController aMethod];
}];