在我的xamarin.forms应用程序中,我正在使用外壳程序组件。我有一个名为 TimeSheetsTab 的选项卡式页面。当我从Shell标签页导航到TimeSheetsTab时,在ios中它仅显示黑页。在Android中,它工作正常。请参考屏幕截图。
我的Appshell页面
<?xml version="1.0" encoding="utf-8" ?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Shell.NavBarIsVisible="False"
xmlns:local="clr-namespace:Sample.Views"
x:Class="Sample.AppShell">
<TabBar>
<Tab Title="Dashboard" Icon="icon_dashboard.png" >
<ShellContent ContentTemplate="{DataTemplate local:Dashboard}" />
</Tab>
<Tab Title="Notifications" Icon="icon_notifications.png">
<ShellContent ContentTemplate="{DataTemplate local:Notifications}" />
</Tab>
<Tab Title="Account" Icon="icon_user.png">
<ShellContent ContentTemplate="{DataTemplate local:Account}" />
</Tab>
</TabBar>
</Shell>
“我的仪表板”,它是Shell的第一个标签页
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Title="Dashboard"
x:Class="Sample.Views.Dashboard">
<ContentPage.Content>
<Button BackgroundColor="Black" Clicked="Button_Clicked" Text="Click to tabpapge" >
</Button>
</ContentPage.Content>
</ContentPage>
按钮单击以导航到选项卡式页面
private async void Button_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new TabPage(), true);
}
我的标签页
<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Views="clr-namespace:Sample.Views"
BarBackgroundColor="{DynamicResource NavigationBarColor}"
mc:Ignorable="d"
NavigationPage.HasNavigationBar="False"
Shell.BackgroundColor="{DynamicResource NavigationBarColor}"
Shell.NavBarIsVisible="True"
x:Class="Sample.Views.TimeSheetsTab">
<Shell.TitleView>
<StackLayout HorizontalOptions="FillAndExpand" Orientation="Horizontal" >
<Label FontSize="Medium" Text="Timesheets" HorizontalTextAlignment="Start" VerticalTextAlignment="Center" TextColor="White"></Label>
<Image Source="search.png" HorizontalOptions="EndAndExpand" HeightRequest="25" Margin="0,2,10,2"></Image>
</StackLayout>
</Shell.TitleView>
<TabbedPage.Children>
<Views:PendingTimesheets Title="Pending" IconImageSource="icon_pending.png"/>
<Views:ApprovedTimesheets Title="Approved" IconImageSource="icon_approved.png"/>
</TabbedPage.Children>
</TabbedPage>
我没有添加TimesheetTab子页面的代码,因为直接导航到它时它可以正确显示。 ios出现问题的原因是什么?任何帮助表示赞赏。