返回父视图后再次加载 iphoneOSGameView 时 opengl 未呈现

opengl is not rendering when i load the iphoneOSGameView again after going back to parent view

我创建了以下视图 class

    public partial class MyGLUIView : iPhoneOSGameView
{
    int intHeight = (int)UIScreen.MainScreen.Bounds.Height;
    int intWidth = (int)UIScreen.MainScreen.Bounds.Width;

    myRendererHandler rendrer = RendererHandler.SharedInstance();

    [Export("layerClass")]
    static Class LayerClass()
    {
        return iPhoneOSGameView.GetLayerClass();
    }

    [Export("initWithCoder:")]
    public MyGLUIView(NSCoder coder) : base(coder)
    {
        LayerRetainsBacking = false;
        LayerColorFormat = EAGLColorFormat.RGBA8;
        ContextRenderingApi = EAGLRenderingAPI.OpenGLES1;
    }

    public void SetData(int NUMBER_DEVICES, TopologyBinaryData[] data)
    {
        //set data to renderer
    }

    protected override void ConfigureLayer(CAEAGLLayer eaglLayer)
    {
        eaglLayer.Opaque = true;
    }

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        MakeCurrent();
        rendrer.InitializeTextures();
    }

    public void onTapEvent(int x, int y)
    {
        rendrer.ProcessExpansion(x, y);
    }

    protected override void OnRenderFrame(FrameEventArgs e)
    {
        base.OnRenderFrame(e);
        rendrer.render();
        SwapBuffers();
    }
    protected override void CreateFrameBuffer()
    {

    }
}

而 viewcontroller class 是

public partial class TopologyViewController : UIViewController
{


    public TopologyViewController(IntPtr handle) : base(handle)
    {
    }


    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        WireUpTapGestureRecognizer();

    }
    protected void WireUpTapGestureRecognizer()
    {
        // create a new tap gesture
        UITapGestureRecognizer tapGesture = null;

        Action action = () =>
        {

        };

        tapGesture = new UITapGestureRecognizer(action);
        // configure it
        tapGesture.NumberOfTapsRequired = 1;
        // add the gesture recognizer to the view
    }
    public override void ViewDidAppear(bool animated)
    {
        base.ViewDidAppear(animated);
    }
    public override void ViewWillAppear(bool animated)
    {
        base.ViewWillAppear(animated);
    }
    public override void ViewDidDisappear(bool animated)
    {
        base.ViewDidDisappear(animated);
        this.topologyView.Stop();
    }
    public override void DidReceiveMemoryWarning()
    {
        base.DidReceiveMemoryWarning();
        // Release any cached data, images, etc that aren't in use.
    }

}

如果我第一次加载上面的视图,它工作正常,但返回并再次加载此视图后,没有绘制任何内容,EAGLContext 为空。当我在

再次按下后退(导航按钮)时应用程序崩溃
   public override void ViewDidDisappear(bool animated)
{
    base.ViewDidDisappear(animated);
    **this.topologyView.Stop();**
}

我正在使用 xamarin studio 和 openTK 1.0。

OS 将释放 EGL 上下文以减少后台视图和进程的内存;因此 EAGL 上下文为空。如果您想继续绘图,则必须重新创建 EAGL 上下文和图形资源。