iOS - 对调用者viewController的引用

Spa*_*Dog 3 iphone cocoa-touch ipad ios

我在viewController中,让我们称之为vcA,然后我调用第二个vcB,使用

[self presentModalViewController:vcB animated:YES];
Run Code Online (Sandbox Code Playgroud)

一旦加载vcB,有什么方法可以获得对vcA的引用?

是的,我知道我可以继承vcB并为其添加属性.我只是问是否有一些本机iOS方法/属性/已经做到的那些.

我在navigationController应用程序上.

谢谢.

Pau*_*l.s 5

如果它是单火使用并且没有很多合作,我倾向于优先使用块而不是委托,因为它看起来有点整洁.

例如,如果只是在完成使用secondViewController后回调,我会:

将块属性添加到SecondViewController

@property (nonatomic, strong) void (^onCompletion)(void);
Run Code Online (Sandbox Code Playgroud)

然后在firstViewController中创建secondViewController

- (void)showSecondViewController;
{
  SecondViewController *viewController = [[SecondViewController alloc] init];
  viewController.onCompletion = ^{
    [self dismissViewControllerAnimated:YES completion:nil];
  };

  [self presentViewController:viewController
                 animated:YES
               completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

完成后,在secondViewController中

- (IBAction)doneTapped;
{
  if (self.onCompletion) {
    self.onCompletion();
  }
}
Run Code Online (Sandbox Code Playgroud)

如果需要返回值,则只需修改块以接受参数