IONIC 간단한 nav 개념잡기
기본적인 페이지 이동
ionic 은 router 의 개념이 stack을 통해 view 를 push/pop 하는 형식이다.(이것은 한글인가 영어인가….)
1 2 3 4 5 6 7 8 9 10 11
| import {NavController} from 'ionic-angular'; .....
@Component({ templateUrl: 'yourIndex.html'; }) export class IndexPage{ constructor( public navCtrl:NavController){ } }
|
여기서 클래스 이름 그대로 NavController 가 네비게이션 컨트롤러 역할을 한다. 페이지를 넘기고 싶다면 push 를 이용해서 이동하고 싶은 페이지의 컴포넌트를 입력시키면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import {NavController} from 'ionic-angular'; ..... import {SecondPage} from '../Component/SecondPage/SecondPage';
@Component({ templateUrl: 'yourIndex.html'; }) export class IndexPage{ constructor( public navCtrl:NavController){ }
moveToSecond(){ this.navCtrl.push(SecondPage); } }
|
페이지간 데이터 전송
페이지간 데이터를 전송하고 싶다면 push에 파라메터로 넘기고싶은 데이터의 Object를 파라메터로 넘겨주고, 받는 페이지에서는 navParams.get() 을 이용해서 받으면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import {NavController} from 'ionic-angular'; ..... import {SecondPage} from '../Component/SecondPage/SecondPage';
@Component({ templateUrl: 'yourIndex.html'; }) export class IndexPage{ constructor( public navCtrl:NavController){ }
moveToSecond(){ this.navCtrl.push(SecondPage,{msg: "It's work!!"}); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import {NavController, NavParams} from 'ionic-angular'; ....
@Component({ templateUrl: 'yourSecond.html'; }) export class SecondPage{ constructor( public navCtrl:NavController, public navParams:NavParams){ }
ionViewDidLoad() { console.log(this.navParams.get('msg')); } }
|
rootPage 설정
페이지가 이동을 하면 새로 root 페이지를 설정해줘야 할 때가 있다. 예를들면 로그인 이후 화면? 같은것을 예로 들 수 있다. setRoot()를 이용하면 root 페이지를 바꿀 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import {NavController, NavParams} from 'ionic-angular'; ....
@Component({ templateUrl: 'yourSecond.html'; }) export class SecondPage{ constructor( public navCtrl:NavController, public navParams:NavParams){ }
ionViewDidLoad() { console.log(this.navParams.get('msg')); this.navCtrl.setRoot(SecondPage); } }
|
setRoot() 사용시 주의점은 root를 바꿔주면서 해당 페이지로 이동시키기 때문에 setRoot() 를 사용하는 지점을 잘 생각해야 한다. 실수로 자기 자신을 루트로 잡아봤는데 무한루프가 도는 것을 볼 수 있었다.
참조 사이트
http://www.joshmorony.com/a-simple-guide-to-navigation-in-ionic-2/
고 투 더 멘토