Ionic2 navController properties not working as expected

0
down vote
favorite
I am trying to build an app, which has the following work flow.

LoginPage
HomePage
Create Request page -> Present in HomePage and menu
Request Success page -> when request creation is success
Request List page -> Present in HomePage and menu
Request detail page -> on click of request item
From login page when user have given then correct credentials i am calling a service.If it is success,i am making Homepage as the root of nav controller.

if(getLoginDetails.status == “success”)
{
this.navCtrl.setRoot(HomePage);
}

but still when i used this.navCtrl.length() in HomePage constructor,its show 2.How can this happen,when i just replaced root element of navigation stack from LoginPage with homepage.As per my understanding,the count should come as 1. Also except login each page has swipeEnabled = true menu and a back button. Now suppose user go to HomePage and then createRequestPage and then used menu to go to requestListPage,now i need that when user click back button it should take user to homePage.For this my approach is that when user click through menu,i will remove all pages in navigation stack except the first one that is our root-Homepage. I tried with this way but its not working-

this.navCtrl.remove(1,this.navCtrl.length(),{}).then(
()=>{
this.navCtrl.push(RequestListPage)
});

But this does not seems to work. Can somebody help me with this. Also some better docs for NavController of ionic2.