PerformSegue正确的电话

时间:2013-04-03 16:50:38

标签: xamarin.ios xamarin

Xamarin / MonoTouch新手

我有一个通用的故事板应用程序(ipad和iphone) 我使用故事板

所以我已经从MainViewController链接了一个segue 到secondaryViewController(educateViewController)。

我不使用也不想使用导航控制器(我可以在原生iOS中执行此操作)

我正在努力处理导致

的PerformSegue调用
  

System.Exception:在托管上从objective-c调用的Selector   具有的MyTestApp.educateViewController类型的对象(0x9827E50)   已经GC'ed ---> System.Exception:找不到构造函数   MyTestApp.educateViewController ::。构造函数(System.IntPtr)

我有 private educateViewController educateScreen;

和ViewDidLoad()内部 educateScreen = new educateViewController();

partial void educate (MonoTouch.Foundation.NSObject sender)
        {
            solveIt(sender);

            if (valid) {
                if (UserInterfaceIdiomIsPhone) {
                    this.PerformSegue("educate", this);  <<<< error occurs here
                } else if (UserInterfaceIdiomIsiPad) {
                    this.Instructor.Hidden = false;
                }
            }
        }

只有在iPhone上才会调用Segue

欢迎所有帮助,提前致谢

2 个答案:

答案 0 :(得分:3)

您需要确保EducateViewController实现以下构造函数:

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

这应该允许从故事板中实例化视图控制器。

答案 1 :(得分:0)

执行谴责:

this.PerformSegue("segueIdentifier here", this);

在目标类上,添加:

protected MyCustomController(IntPtr handle) : base(handle)
        {
            // Note: this .ctor should not contain any initialization logic.
        }

注意:请更改&#39; MyCustomController&#39;作为目标控制器名称。