我不想重复代码,因此我认为我使用的方法可以帮助我。我想要做的是使用任何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);
但我无法编译。我得到了
无法转换&#39; ref CustomViewController&#39;表达式键入&#39; ref object&#39;
调用 removeFromContainer 和
输入&#39;对象&#39;不包含&#39; RemoveFromParentViewController&#39;的定义并没有扩展方法&#39; RemoveFromParentViewController&#39;类型&#39;对象&#39;可以找到。
在我的方法中( removeFromContainer )。
我该如何解决?我错过了什么?
答案 0 :(得分:1)
您可以将object
转换为UIViewController
类型,并在不使用泛型的情况下使用它。
private void removeViewController(object objviewController)
{
var viewController = viewController as UIViewController
if (viewController != null)
{
viewController.RemoveFromParentViewController();
viewController.Dispose ();
}
}