我正在试图弄清楚如何在Xamarin Forms中的两个不同页面之间切换。
我不希望使用NavigationPage
(其中包含自动显示的 back 箭头。
我有一个登录页面(ContentPage
),一旦此人通过身份验证,我就需要导航到我的仪表板页面(TabbedPage
)。
例如
接下来,TabbedPage中的一个选项卡是登录用户的配置文件。因此,我需要将它们注销。所以我会有一个按钮来记录它们,这意味着我需要将它们导航回登录页面(那是ContentPage
)。
我觉得我有两个模式用户可能在。
ContentPage
)TabbedPage
)。就像..我需要将App
的{{1}}更改为这两个中的一个?
有人可以帮助我吗?
答案 0 :(得分:16)
要将MainPage更改为另一个,请执行以下操作:
App.Current.MainPage = new NavigationPage(new MyContentPage());
或
App.Current.MainPage = new MyContentPage();
顺便说一句:您可以使用NavigationPage然后隐藏工具栏:
NavigationPage.SetHasNavigationBar(this, false);
答案 1 :(得分:1)
您可以像往常一样通过在Application实例中设置MainPage来进行导航。小样本。
namespace TestNavigation
{
public class App : Application
{
public App ()
{
// The root page of your application
MainPage = new MyPage1 ();
}
}
}
namespace TestNavigation
{
public class MyPage1 : ContentPage
{
public MyPage1 ()
{
var button = new Button () {
Text = "Click me"
};
button.Clicked += (object sender, EventArgs e) => {
Application.Current.MainPage = new MyPage2 ();
};
Content = new StackLayout {
Children = {
button
}
};
}
}
}
namespace TestNavigation
{
public class MyPage2 : ContentPage
{
public MyPage2 ()
{
Content = new StackLayout {
Children = {
new Label { Text = "Hello ContentPage" }
}
};
}
}
}
<强> EDIT1 强>
我提交了这个答案但后来我意识到我可能不理解你的问题。
<强> EDIT2 强>
更新了样本。
答案 2 :(得分:0)
如果您想在页面之间切换,那么您只需执行
即可Application.Current.MainPage=new YourPage();
How to Change MainPage in xamarin forms at runtime?
这是我为获得结果所做的工作
答案 3 :(得分:-1)
对于登录页面,最佳做法是使用
await Navigation.PushModalAsync (new LoginPage());
进入LoginPage后,您可以在验证通过后使用popModelAsync:
await Navigation.PopModalAsync ();