我正在尝试从ContentPage打开(使用任何方法)TabbedPage。
我的主要应用代码:
public class App : Application
{
public App ()
{
MainPage = new ConnectPage ();
}
}
我的ConnectPage使用XAML,代码:
.cs文件:
public partial class ConnectPage : ContentPage
{
public ConnectPage ()
{
InitializeComponent ();
}
void connectDevice(object sender, EventArgs args){
connect_btn.Text = "Connecting...";
connect_btn.IsEnabled = false;
var mainapp_page = new MainApp ();
Navigation.PushAsync (mainapp_page);
}
}
XAML文件:
<Button x:Name="connect_btn" Text="Connect Now" Clicked="connectDevice"></Button>
上面的方法抛出错误:
iOS上不支持全局支持PushAsync,请使用a NavigationPage
我的MainApp.cs(包含标签):
public class MainApp : ContentPage
{
public MainApp ()
{
var tabs = new TabbedPage ();
tabs.Children.Add (new Tab1Page{Title="Tab1" });
tabs.Children.Add (new Tab2Page{Title="Tab2" });
tabs.Children.Add (new Tab3Page{Title="Tab3" });
}
}
答案 0 :(得分:1)
您可以更新您应用的MainPage
媒体资源,并将其设置为您要显示的页面,使用堆栈导航或以模态方式显示页面。
设置新的主页面将无法让用户返回:
App.Current.MainPage = new SomeOtherPage ();
如果您想使用堆栈导航,则必须将初始页面包装成NavigationPage
:
public partial class App : Application
{
public App ()
{
InitializeComponent ();
this.MainPage = new NavigationPage (new FirstPage ());
}
}
您可以使用Navigation.PushAsync()
。
如果您想以模态方式呈现页面,因此它会显示在当前页面的顶部并且可以被解除,请使用:
Navgiation.PushModalAsync(new Page());
但是,这仍然需要将当前页面包装成NavigationPage
。
还有其他方法,例如CarouselPage
或MasterDetailPage
。我建议您查看所有选项的documentation。