Перемещение между TabbedPage и другой ContentPage - PullRequest
0 голосов
/ 26 мая 2020

Приложение (для Android и iOS), которое мы пытаемся создать, имеет TabbedPage в качестве MainPage. На одной из вкладок открывается новая страница NavigationPage через PushModalAsyn c. Пока это работает, но на новой странице навигации нет кнопки возврата и заголовка навигации. Насколько я понимаю, TabbedPage не является частью Navigation и не должен быть включен в него, потому что это вызовет некоторые проблемы с iOS. Но даже если бы я сделал это (я пробовал это на Android), новый Modal, похоже, не помещается в тот же стек навигации. Возможно ли вообще открыть новую модальную страницу из TabbedPage в той же навигации?

The App.xaml.cs:

public App()
    {
        InitializeComponent();

        DependencyService.Register<MockDataStore>();
        MainPage = new MainPage();
    }

Главная страница содержит две NavigationPages

<TabbedPage.Children>
    <NavigationPage Title="Browse">
        <x:Arguments>
            <views:ImageGrid />
        </x:Arguments>
        <NavigationPage.Icon>
            <OnPlatform x:TypeArguments="FileImageSource">
                <On Platform="iOS" Value="tab_feed.png"/>
            </OnPlatform>
        </NavigationPage.Icon>

    </NavigationPage>

    <NavigationPage Title="Aufräumen">
        <x:Arguments>
            <views:CleanupPage />
        </x:Arguments>
        <NavigationPage.Icon>
            <OnPlatform x:TypeArguments="FileImageSource">
                <On Platform="iOS" Value="tab_about.png"/>
            </OnPlatform>
        </NavigationPage.Icon>

    </NavigationPage>
</TabbedPage.Children>

И кнопка на второй NavigationPage (CleaupPage.xaml.cs) называет это

public ICommand StartScan => new Command(async () => {
        await Navigation.PushModalAsync(new NavigationPage(new ScanResultPage(scanOptions)));
    });

1 Ответ

0 голосов
/ 26 мая 2020

Если у вас есть TabbedPage внутри NavigationPage, можно использовать PushAsync на root NavigationPage для получения sh страницы поверх TabbedPage. В основном:

public App()
{
    InitializeComponent();

    DependencyService.Register<MockDataStore>();
    MainPage = new NavigationPage(new MainPage()); // MainPage inside a NavigationPage
}

// Later on
(MainPage as NavigationPage).PushAsync(new ModalPage());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...