使用任何UIViewController子类作为方法的通用参数
本文关键字:方法 参数 任何 UIViewController 子类 | 更新日期: 2023-09-27 18:13:05
我不想重复代码,因此我认为我使用一个方法来为我做这件事。我想做的是使用任何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和
类型'object'不包含'RemoveFromParentViewController'的定义,也找不到类型'object'的'RemoveFromParentViewController'的扩展方法
在我的方法(removeFromContainer)。
我怎么解决这个问题?我错过了什么?
您可以将object
转换为类型UIViewController
,并且不使用泛型。
private void removeViewController(object objviewController)
{
var viewController = viewController as UIViewController
if (viewController != null)
{
viewController.RemoveFromParentViewController();
viewController.Dispose ();
}
}