Xamarin.Forms:使用GetMainPage()

tes*_*ing 2 c# xamarin.ios ios xamarin xamarin.forms

我目前正在阅读Xamarin.Forms简介中导航部分.人们应该使用这种方法.但是应该如何使用呢?GetMainPage()

app delegate的默认实现如下所示:

申请代表:

public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
    public override bool FinishedLaunching (UIApplication app, NSDictionary options)
    {
        global::Xamarin.Forms.Forms.Init ();

        LoadApplication (new App ());

        return base.FinishedLaunching (app, options);
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序:

public class App : Application
{
    public App ()
    {
        MainPage = GetMainPage ();
    }

    public static Page GetMainPage()
    {
        var mainNav = new NavigationPage(new ListExample());
        return mainNav;
    }
}
Run Code Online (Sandbox Code Playgroud)

我让它设法使用该GetMainPage()方法而不是获取

应用程序窗口应在应用程序启动结束时具有根视图控制器

如果我查看(旧的?)示例(example1,example2),app委托是不同的,并且CreateViewController()方法可用.在我的情况下,它不是!

将根页面加载到堆栈的正确方法是什么?

Kru*_*lur 6

你不必使用GetMainPage(); 这只是创造的一种方法.X.Forms最近的工作方式是:它MainPage在Xamarin.Forms Application类中公开一个属性.您将其设置为a的实例Page.您如何创建该页面取决于您自己.你可以使用

this.MainPage = new ContentPage { Content = ... }

或者你每页创建一个文件(IMHO最适合可维护性):

this.MainPage = new MyLoginPage();

或者您使用创建页面的帮助方法:

this.MainPage = this.GetMainPage();

主页面是Forms应用程序的第一页.您可以将MainPage属性设置为其他值以显示另一个页面.

早期版本的Forms使用了不同的方法,并非所有样本都已更新.现在,所有平台只需要调用Forms Init()方法和调用LoadApplication()而不是创建视图控制器,活动或页面(WP8).