我覺得這是你在找什麼,
[self dismissViewControllerAnimated:YES completion:^{
[self.mainController aMethod];
}];
在你需要聲明self
外塊,並把它作爲,
上面的代碼
__block SecondViewController *object = self;
[self dismissViewControllerAnimated:YES completion:^{
[object.mainController aMethod];
}];
只是爲了避免self
被攔截。
更新:
現在得到的問題。您需要聲明mainController
作爲您的.h文件secondViewController
中的一個屬性。之後,當你呈現從maincontroller
的secondViewController
,你需要將其設置爲,
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];
}];
以及ig我在做'__block YouViewController * object = self' wouldnt我將設置對象是viewController被解僱?不是正在呈現的人? –
噢,剛剛看到您的更新。對象沒有mainController,它不知道它是什麼.. –
你現在可以檢查,讓我知道這是否工作? – iDev