今までかなり我流で適当に作ってた感があったので、改めて確認した。
画面遷移は4つの方法があり、そのうち2つは戻るボタンが付く
こちらの記事によると、ページの遷移には4つの方法があり、このうち currentTab.open と navGroup.open でやると、戻るボタンがつくとのこと。自分はこれまで、currentTab.open を使っていた(tab は隠して)。
では navGroup での実装とはどんな感じなのか?
あまり違いがないような?
別のこちらの記事には、navGroup を使った画面遷移のサンプルがあった。やっていることは、
- win1 作って、そこへTableView をadd
- ルートウィンドウとしてもうひとつwindowつくる
- ナビゲーショングループを定義して、最初のwindowとして win1 を指定し、ルートウィンドウをopen
- イベントリスナーでTableViewの行クリックを検出して、対応するURLを開くwebviewを定義し、ナビゲーショングルーウでその webview のウィンドウをopen
tabの場合とあまり変わらないな、という印象。使い分けが今ひとつ分かっていない。
戻るボタンで戻ってきたら、さっきの画面表示にならない
以前自分がtab使って複数のjsファイルで画面遷移をやってみてハマったのが以下の点。
- メインの画面はtableview で、画面の下には広告スペースが、別のviewで実装されている。
- tableviewの任意の行をクリックすると、更に別の画面(あるいは別のtableview)に遷移して、表示される情報が細分化されていく。
- 広告スペースがクリックされると、広告のウェブサイト(webview)が表示される
- 遷移した画面からは、いずれも戻るボタンで元に戻ってこれる。
で、戻るボタンで戻ってきたときに、本来は tableview + 広告スペース で表示されるはずの画面に、広告スペースが表示されない(tableview だけになってしまう)というものだった。一応解決出来る方法は見出したのだけど、いまひとつしっくり来なかったので、再調査している次第。もうちょっと調べてみようと思う。