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

[self presentModalViewController:vcB animated:YES];

一旦 vcB 被加载,有没有办法获得对 vcA 的引用?

是的,我知道我可以子类化 vcB 并向其添加属性。我只是问是否有一些 native iOS 方法/属性/已经这样做的任何东西。

我在导航 Controller 应用程序上。

谢谢。

最佳答案

如果它用于单火使用并且没有很多协作,我倾向于更喜欢块而不是委派,因为它看起来有点整洁。

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

向 SecondViewController 添加块属性

@property (nonatomic, strong) void (^onCompletion)(void);

然后在创建 secondViewController 时在 firstViewController
- (void)showSecondViewController;
{
  SecondViewController *viewController = [[SecondViewController alloc] init];
  viewController.onCompletion = ^{
    [self dismissViewControllerAnimated:YES completion:nil];
  };

  [self presentViewController:viewController
                 animated:YES
               completion:nil];
}

然后在完成后在 secondViewController 中
- (IBAction)doneTapped;
{
  if (self.onCompletion) {
    self.onCompletion();
  }
}

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

关于iphone - iOS - 对调用者 viewController 的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12763209/

10-12 14:07