Pu sh Asyn c не поддерживается глобально на Android, используйте NavigationPage - PullRequest
0 голосов
/ 18 января 2020

В App.xaml.cs У меня есть следующий код:

MainPage = new LoginPage();  //LoginPage is ContentPage

Когда пользователь нажимает Button на этой странице, происходит вызов MasterDetailPage который имеет тип MasterDetailPage. Это будет моя настоящая главная страница, с которой пользователи будут переходить на другие страницы. Я рассматриваю это как центральное место для моего приложения с navigation bar.

Application.Current.MainPage = new MasterDetailPage();

, находящимся в MasterDetailPage в ctor Я устанавливаю открытую страницу по умолчанию:

Detail = new NavigationPage(new ClientsPage());

Теперь у меня есть Button для перехода к другому ContentPage, поэтому, когда я нажимаю Button, эта строка выполняется:

await Application.Current.MainPage.Navigation.PushAsync(new ClientModifyPage(_selectedClient));

Тем не менее я получаю следующую ошибку:

PushAsyn c не поддерживается глобально на Android, используйте NavigationPage

Что не так?

Ответы [ 2 ]

1 голос
/ 18 января 2020

await Application.Current.MainPage.Navigation.PushAsyn c (новый ClientModifyPage (_selectedClient));

Как сказал SushiHangover , это будет ожидаемый результат, поскольку Application.Current.MainPage является MasterDetailPage, которого нет в NavigationPage.

Вы должны вызвать метод PushAsync на странице сведений.

 await((MasterDetailPage)App.Current.MainPage).Detail.Navigation.PushAsync(new ClientModifyPage(_selectedClient));
0 голосов
/ 18 января 2020

место под строкой на странице app.cs

MainPage = new NavigationPage(new LoginPage());

вместо

MainPage = new LoginPage();

И не нужно использовать NavigationPage на других страницах. NavigationPage следует использовать, когда мы впервые перенаправляем страницу в нашем приложении. Здесь MainPage - это страница root. Мы должны назначить страницу (LoginPage) для MainPage с помощью NavigationPage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...