我应该在哪里放置导航代码?

时间:2016-07-11 04:44:44

标签: xamarin xamarin.forms

如果本地存储中有令牌,我想跳过登录页面,但我不想将逻辑移到App,因为我希望LoginPage保留我的基础页。 目前,我有这个代码,它可以工作。

public LoginPage()
{
    InitializeComponent();
}

protected override void OnAppearing()
{
    var localStorage = new LocalStorage();
    if (!string.IsNullOrEmpty(localStorage.Get("key")))
    {
        Navigation.PushAsync(new MainTabbedPage(true));
    }

    base.OnAppearing();

    // some unrelated code...
}

问题在于,有时(经常),登录页面会在几分之一秒内可见,直到导航到MainTabbedPage。我可以将OnAppearing的导航代码放到页面构造函数中吗?如果是,我应该在InitializeComponent();之前或之后提出它吗?请注意,在应用程序中的某个时间,我可能会调用PopToRootAsync()以返回登录页面,这次,我可能想要显示。

另外,请告诉我这种方法是否有问题。

提前致谢。

1 个答案:

答案 0 :(得分:2)

我强烈建议您创建一个启动画面。这样,您可以在下一个屏幕显示和执行任务之前获得最短时间。当启动画面可见时,检查用户令牌是否有效,然后继续显示登录屏幕或您要显示的任何屏幕。 如果您需要进一步的帮助,请告诉我。