【问题标题】:Call a method in parent from within modalViewController从 modalViewController 调用父级中的方法
【发布时间】:2011-11-07 19:03:54
【问题描述】:

我使用添加视图控制器

[self presentModalViewController:vectorView animated:YES];

但随后想从内部调用父视图控制器内部的方法。

我阅读了this 的问题,发现可以这样做来在父级中设置一个变量:

self.parentViewController.myString = aString;

但是有没有办法调用方法并通过这种方式发送一些变量?

例如

self.parentViewController.myMethod; //Which does not work

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

    这与您发送的任何其他消息没有什么不同:

    [self.parentViewController myMethod:param1 withParam:param2];
    

    注意 parentViewController 属性的行为在 iOS 5 中发生了变化:

    在 iOS 5.0 之前,如果视图没有父视图控制器并且以模态方式呈现,则将返回呈现它的视图控制器。这已不再是这种情况。您可以使用 presentingViewController 属性获取呈现视图控制器。

    【讨论】:

    • 酷。不得不使用presentingViewController 来使其工作。所以谢谢你的额外。
    【解决方案2】:

    要添加到 Ole Begemann 答案,您可以将视图控制器强制转换为静音警告

    if ([self.parentViewController isKindOfClass:[YourParentViewController class]])
        [(YourParentViewController*)self.parentViewController yourMethod];
    

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      • 2014-11-13
      • 1970-01-01
      • 2017-01-05
      相关资源
      最近更新 更多