如何正确处理子UIViewController?

时间:2015-09-24 12:36:18

标签: c# ios uiviewcontroller xamarin xamarin.ios

首先,我使用

从容器中删除子UIViewController
private void removeFromContainer(UIViewController viewController)
{
    viewController.WillMoveToParentViewController (null);
    viewController.View.RemoveFromSuperview ();
    viewController.RemoveFromParentViewController ();
    viewController.DidMoveToParentViewController (null);
}

然后我想处理它

private void disposeChild(UIViewController viewController){
    if (viewController != null) {
        viewController.Dispose();
        viewController = null;
    }
}

如果我试试这个

if (viewController.IsViewLoaded && viewController.View.Window != null && viewController.ParentViewController != null) {
    // ...
}

该应用程序崩溃

  

System.ObjectDisposedException   该物体在处置后使用。

从我的观点来看, viewController 应该为null,但似乎它不是。

如何正确处理子视图控制器?

1 个答案:

答案 0 :(得分:0)

在我调用 disposeChild()之后我null输出变量。似乎没有发生通过引用传递。但我不认为有副本。也许人们可以解释......