{"action":"created","issue":{"url":"https://api.github.com/repos/PrismLibrary/Prism/issues/921","repository_url":"https://api.github.com/repos/PrismLibrary/Prism","labels_url":"https://api.github.com/repos/PrismLibrary/Prism/issues/921/labels{/name}","comments_url":"https://api.github.com/repos/PrismLibrary/Prism/issues/921/comments","events_url":"https://api.github.com/repos/PrismLibrary/Prism/issues/921/events","html_url":"https://github.com/PrismLibrary/Prism/issues/921","id":203644062,"number":921,"title":"[XF] Add ability to Remove pages from the navigation stack","user":{"login":"brianlagunas","id":835562,"avatar_url":"https://avatars0.githubusercontent.com/u/835562?v=4","gravatar_id":"","url":"https://api.github.com/users/brianlagunas","html_url":"https://github.com/brianlagunas","followers_url":"https://api.github.com/users/brianlagunas/followers","following_url":"https://api.github.com/users/brianlagunas/following{/other_user}","gists_url":"https://api.github.com/users/brianlagunas/gists{/gist_id}","starred_url":"https://api.github.com/users/brianlagunas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianlagunas/subscriptions","organizations_url":"https://api.github.com/users/brianlagunas/orgs","repos_url":"https://api.github.com/users/brianlagunas/repos","events_url":"https://api.github.com/users/brianlagunas/events{/privacy}","received_events_url":"https://api.github.com/users/brianlagunas/received_events","type":"User","site_admin":false},"labels":[{"id":301431956,"url":"https://api.github.com/repos/PrismLibrary/Prism/labels/XF","name":"XF","color":"5319e7","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/PrismLibrary/Prism/milestones/9","html_url":"https://github.com/PrismLibrary/Prism/milestone/9","labels_url":"https://api.github.com/repos/PrismLibrary/Prism/milestones/9/labels","id":2528007,"number":9,"title":"Prism 7.0","description":"Prism with .NET Standard Support","creator":{"login":"brianlagunas","id":835562,"avatar_url":"https://avatars0.githubusercontent.com/u/835562?v=4","gravatar_id":"","url":"https://api.github.com/users/brianlagunas","html_url":"https://github.com/brianlagunas","followers_url":"https://api.github.com/users/brianlagunas/followers","following_url":"https://api.github.com/users/brianlagunas/following{/other_user}","gists_url":"https://api.github.com/users/brianlagunas/gists{/gist_id}","starred_url":"https://api.github.com/users/brianlagunas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianlagunas/subscriptions","organizations_url":"https://api.github.com/users/brianlagunas/orgs","repos_url":"https://api.github.com/users/brianlagunas/repos","events_url":"https://api.github.com/users/brianlagunas/events{/privacy}","received_events_url":"https://api.github.com/users/brianlagunas/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":37,"state":"open","created_at":"2017-05-17T22:04:03Z","updated_at":"2017-10-11T23:24:07Z","due_on":null,"closed_at":null},"comments":53,"created_at":"2017-01-27T14:08:49Z","updated_at":"2017-10-11T23:32:49Z","closed_at":"2017-10-11T23:24:07Z","author_association":"OWNER","body":"A common scenario in mobile app is having the ability to remove a page that exists somewhere in the navigation stack.  This is not a navigation operation, but really a targeted way of removing a very specific page.\r\n\r\nExample:\r\nInitially navigate the app:\r\nMasterDetailPage/NavigationPage/ProjectsListPage\r\nNavigate to create a new project:\r\nMasterDetailPage/NavigationPage/ProjectsListPage/CreateProjectPage\r\nwhen finished with the create page navigate to a session page, and remove the create page:\r\nMasterDetailPage/NavigationPage/ProjectsListPage/SessionsListPage\r\n\r\nThere are two options to achieve this:\r\n- Remove(string name) - you provide the registered name of the page to be removed.  This can be very tricky to implement and error prone since there are multiple navigation stacks to look through to find the page.  Especially when you have more than one instance of the same page in the navigation stack.\r\n- Remove(int index) - you provide the index of the page to remove.  This is safer, but places the responsibility of knowing exactly which page needs to be removed on the developer.  Since there are multiple navigation stacks, the Remove method may have to have an optional parameter to tell the service which stack to look in to remove the page.\r\n\r\nNew Ideas from conversation below:\r\n- IDestroyAfterNavigation - since the main scenario for removing a page is normally to remove the page that is prior to the last page in the stack, we can add an interface which will indicate that the page is to be removed immediately after navigation to the new navigation target has completed.\r\n- Support `NavigateAsync(\"../Name\")` - stick with a uri based approach and add support for navigating backwards while appending a view.\r\n\r\nThoughts?"},"comment":{"url":"https://api.github.com/repos/PrismLibrary/Prism/issues/comments/335977777","html_url":"https://github.com/PrismLibrary/Prism/issues/921#issuecomment-335977777","issue_url":"https://api.github.com/repos/PrismLibrary/Prism/issues/921","id":335977777,"user":{"login":"brianlagunas","id":835562,"avatar_url":"https://avatars0.githubusercontent.com/u/835562?v=4","gravatar_id":"","url":"https://api.github.com/users/brianlagunas","html_url":"https://github.com/brianlagunas","followers_url":"https://api.github.com/users/brianlagunas/followers","following_url":"https://api.github.com/users/brianlagunas/following{/other_user}","gists_url":"https://api.github.com/users/brianlagunas/gists{/gist_id}","starred_url":"https://api.github.com/users/brianlagunas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianlagunas/subscriptions","organizations_url":"https://api.github.com/users/brianlagunas/orgs","repos_url":"https://api.github.com/users/brianlagunas/repos","events_url":"https://api.github.com/users/brianlagunas/events{/privacy}","received_events_url":"https://api.github.com/users/brianlagunas/received_events","type":"User","site_admin":false},"created_at":"2017-10-11T23:32:49Z","updated_at":"2017-10-11T23:32:49Z","author_association":"OWNER","body":"This has been implement with PR #1207. Please try this out with the latest 163-CI build on MyGet.  I need feedback as soon as you can give it to me."}}
{"actor":{"display_login":"brianlagunas"}}