繁体   English   中英

使用任何UIViewController子类作为方法的通用参数

[英]Use any UIViewController subclass as generic parameter for method

我不想重复代码,因此我认为我使用了一种可以为我做到这一点的方法。 我想要做的是使用任何UIViewController子类作为参数(通过引用)。 我尝试过这样的事情

private void removeViewController<T>(ref object viewController){
    if (viewController != null) {
        viewController = (T)Convert.ChangeType (viewController, typeof(T));
        viewController.RemoveFromParentViewController ();
        viewController.Dispose ();
        viewController = null;
    }
}

并以这种方式称呼它

removeFromContainer<CustomViewController> (ref customViewController);

但我不能编译。 我懂了

无法将“ ref CustomViewController”表达式转换为“ ref object”类型

在调用removeFromContainer

类型“对象”不包含“ RemoveFromParentViewController”的定义,找不到类型为“对象”的扩展方法“ RemoveFromParentViewController”。

在我的方法中( removeFromContainer )。

我该如何解决? 我想念的是什么?

您可以将object UIViewControllerUIViewController类型,并在不使用泛型的情况下使用它。

private void removeViewController(object objviewController)
{
    var viewController = viewController as UIViewController
    if (viewController  != null) 
    {      
        viewController.RemoveFromParentViewController();
        viewController.Dispose ();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM