如何从模态视图控制器调用视图控制器上的方法

Iow*_*a15 4 modalviewcontroller presentmodalviewcontroller ios objective-c-blocks

我有一个模态视图控制器,我从另一个视图控制器调用.在解除模态视图控制器后,我想在视图控制器上调用一个方法来呈现该模态视图.最简单的方法是什么?

我尝试在我的模态视图控制器中执行此操作:[(ParentViewController*)self.presentingViewController foo];在调用之前[self dismissViewControllerAnimated:YES completion:nil];.

Xcode给我一个错误,说foo不被识别,即使它是在控制器中定义和原型化的.如果您的解决方案涉及块,我真的不理解它们,所以如果您想添加更多细节,我将不胜感激.谢谢.

ParentViewController.h

@interface ParentViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
{
    NewAssignmentViewController *newAssignmentViewController;
    TableViewDataSource *data;
}

-(void)foo;

@end
Run Code Online (Sandbox Code Playgroud)

rde*_*mar 11

您需要像这样获得对您的呈现控制器的正确引用:

ParentViewController *presenter = [(UITabBarController *)self.presentingViewController viewControllers][0]; // 0 is assuming that ParentViewController is in the first tab. Change if necessary
[presenter foo];
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用委托,但这是另一个时间的答案.