【问题标题】:Parent View Controller extension父视图控制器扩展
【发布时间】:2018-08-28 19:38:14
【问题描述】:

我正在尝试实现一种共享方法,该方法允许在父视图控制器和子视图控制器之间共享数据。在 Objective-C 中,我可以这样做:

@implementation UIViewController(MyParentViewController)

- (MyParentViewController*)containerController
{
    UIViewController *parent = self;
    Class parentClass = [MyParentViewController class];
    while ( nil != (parent = [parent parentViewController]) && ![parent isKindOfClass:parentClass] ) {}
    return (id)parent;
}

@end

这允许子视图控制器通过添加MyParentViewController *containerController = self.containerController; 来创建其父视图控制器的实例 所以问题是如何在 Swift 4 中实现类似的东西?提前致谢!

【问题讨论】:

    标签: ios objective-c swift


    【解决方案1】:

    这是您想要实现的基本实现。无论如何,这不是分享。如果存在任何父子包含关系,这是一种允许控制器获取特定控制器实例的方法。

    extension UIViewController {
        var containerController: MyParentViewController? {
            var parentController: UIViewController? = parent
            while parentController as? MyParentViewController == nil {
                parentController = parentController?.parent
            }
            if let controller = parentController as? MyParentViewController {
                return controller
            }
            return nil
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 2018-02-22
      • 1970-01-01
      • 2015-07-14
      • 2011-06-30
      相关资源
      最近更新 更多