我想定義一個自定義的演示者來定製我的UI一點,在iPad上實現分割視圖等等。我定義這個類:MVVMCross:CreatePresenter()永遠不會在MvvmCrossTouch設置中調用
class ProjectPresenter : MvxTouchViewPresenter
{
public ProjectPresenter(UIApplicationDelegate applicationDelegate, UIWindow window) : base(applicationDelegate, window)
{
}
public override void Show(MvxViewModelRequest request)
{
IMvxTouchView viewController = this.CreateViewControllerFor(request);
this.Show(viewController);
}
}
而且我註冊在我的MvxTouchSetup類,像這樣:
protected override IMvxTouchViewPresenter CreatePresenter()
{
MvxTrace.Trace("Creating the presenter!");
return new ProjectPresenter(this.ApplicationDelegate, this.Window);
}
然而,在Show()方法的斷點永遠不會命中。我試着給Show(),ChangePresentation()等所有重載添加斷點,但它們從來沒有被打中。現在,我知道Xamarin.iOS在涉及斷點的情況下相當不可靠,但即使採用跟蹤方法也不會帶來任何好處。我甚至用引發異常的方法替換了CreatePresenter()方法,該應用程序沒有崩潰。
當我部署它們時,我的應用程序會出現其他修改,所以這不是某種緩存問題,儘管我已經清理了我的PC和Mac上的源代碼。此外,我的設置類的構造函數中的斷點正在被擊中,所以這可能甚至不是Xamarin相關的問題。
我猜我要麼依靠較舊的文檔,要麼我做的事情非常非常愚蠢(我猜測後者)。
現在當我閱讀我的AppDelegate的內容時,這一切似乎非常明顯。謝謝Stuart! –
向舊的構造函數添加一個'''[Obsolete]'''標記可能是一個好主意? –