So, how do you normally implement navigation between login page and masterdetailpage.?
I tried few implementation and not really what I am looking for.
So basically, when the login is successful, themasterdetailpage should be the root navigation so if we go back /or pop, we would need to go out of the app. But at the moment, it goes back to the login page.
I tried..
using NavigationPage and InsertPageBefore the mainpage and pop so it is in the root page, but there is a catch because of the navigation tab showing on both loginpage and masterdetailpage (one tab layer for navigationpage and one extra layer of tab for master page in masterdetailpage)
I tried..
just instantiating the App.MainPage as new loginPage() without wrapping in NavigationPage, but I could not find a way to open masterdetailpage
Any help and direction is appreciated cheers,
You have not to add LoginPage to Navigation.
You should
Application.Current.MainPage = new LoginPage();
after login is ok you should
Application.Current.MainPage = new MyMasterDetailPage();
Related
I am new to Xamarin. How do I change MainPage from ContentPage. Initially when my App load my MainPage is the LoginPage then after I logged in I want my Master page to be my MainPage. How do I do that?
Curretly I am using navigation.Pushmodalasync it works but I have a different requirement that I need to set my MainPage.
await Navigation.PushModalAsync(new Master());
just reassign it
App.Current.MainPage = new MyPage();
I have implemented MasterDetail Page using xamarin forms prism and I have following Pages in my app.
1) Master
2) Home
3) Employee
4) Profile
-- Initially App is set to Master - Home (Detail Page) page after login. From Home page i navigate to Employee (Detail Page) using code as follows :
await _navigationService.NavigateAsync("NavigationPage/Employee");
-- From Employee Page I navigate to Profile (Content Page - Non Detail page) by clicking on one of the employees using code:
await _navigationService.NavigateAsync("Profile", lstparam, null, false);
-- Once home button is clicked in profile page, i want to navigate to Master - Home (Detail Page) . However it navigates to Employee (Detail Page) .
await _navigationService.GoBackToRootAsync();
Checked navigation stack by debugging , It was only showing Employee (Detail Page) Page in it. Also tried navigation to home page by using following code :
await NavigationService.NavigateAsync("/Master/NavigationPage/Home");
The above code is working and i can navigate to Home (Detail Page) , but I am getting White Screen while navigating to Profile to Home Page .
Attached Screenshots . Please Help .Thanks in Advance.
MasterPage
Details_Home
Details_Employee
Profile
Whitescreen
I recently had a very similar problem but it did not depend on prism.
I wanted to create an autologin features by bypassing the login (ContentPage) and calling the homepage (Master And Detail Page).
To do this I had to call the async login service method in my application class.
in order:
Call async service
Call NavigationService.NavigateAsync
In this case appears a blank page
To Solve:
Call NavigationService.NavigateAsync
Call async service
In my case, it happened to me for being using the wrong NavigationService.
I had a static Navigator class that I've been using it for managing and Logging navigations in the App (a simple wrapper), which has a property called Instance, of type NavigationService that I was setting it to the NavigationService of the App.xaml.cs
Reassigning it on each ViewModel (in the ViewModelBase's constructor) fixed the white page bug for me.
Hope it helps someone!
I have a login page in Xamarin.Forms without NavigationPage, but I have a button in this page to navigate to other page to create a new user and, in the page of insert user, I need add a back button to allow users go back to the login page.
How can I do that?
ps: I'm using Prism framework.
My code to open login page:
await NavigationService.NavigateAsync("Login", parametrosNavegacao);
My code to navigate to page that register user:
await NavigationService.NavigateAsync("NavigationPage/CadastroUsuario", useModalNavigation: true);
NavigationService.PopupGoBackAsync();
https://github.com/dansiegel/Prism.Plugin.Popups
One option can be
NavigationService.NavigateAsync("/Login");
the / bebore Login means Absolute url, and prism clears navigation stack, other wise clicking android's back button will again open up insert user page.
Aright, let me try to make it a bit simple,
When i Login: i set the my root page as a Normal ContentPage,
var firstPage = new BaseNavigationPage(new DashBoardPage());
(DashBoardPage is just a contentPage, with few buttons)
On click of the buttons, i navigate my app, using
NavigationService.NavigateTo(ViewModelLocator.CommentPage);
Now on DashbOard, there is button, which redirects me to a Page which is a MasterDetailPage, so using some custom thing,
i navigate by setting my MasterPage,
NavigationService.SetMainPage(ViewModelLocator.MASTER_PAGE);
Following is my MasterDeatilPAge Code;
var menuPage = new MenuListPage();
Master = menuPage;
Detail = new CustomNavigationPage(new WorkTaskPage());
Now , on the Menu Page, i have an List Item as DashBoard, and i have to redirect my App to the first Page,
So how can i do that, since with MasterDetail Page, i can either Navigate Detail Page or Set the Detail Page,
So how can i redirect it to the Dashboard Page, and i want all navigation to work normally when i am on dashboard page, without changing any navigations.
Hope this is a bit clear?
I have used the standard navigation service in my app but the problem is
Accounts Page (Show info from datacontext) -> Add Accounts Page
now if i give navigation to Accounts Page from Add Accounts Page it creates new instance of Accounts Page as below
Accounts Page (Old Data) -> Add Accounts Page -> Accounts Page (Updated Data)
when i get to the new instance the data on the page shows the new entry but if get back i get to the add accounts page again & then Accounts Page (Old Data) which does not show the updated entryso i have to get back to the home pag & again navigate to Accounts Page to get it updated so what should i do to make Add Accounts Page save button send me back to the Accounts Page & its updated?
I tried with
NavigationService.GoBack();
NavigationService.RemoveBackEntry();
NavigationService.Navigate(new Uri(string.Format("/Accounts.xaml?Refresh=true"), UriKind.Relative));
but nothing worked as i wanted PLEASE HELP
NavigationService.GoBack(); is the right way. The problem you need to focus on is: "how to refresh the data when going back to the Accounts Page". The solution depends on your application's architecture. If you used the MVVM pattern, then it's just a matter of adding the new account to the data source in the viewmodel. Otherwise, you should probably reload the account list in the OnNavigatedTo method of your page:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// Load the accounts
}