私は Android で Qt 5.2.1 を使用しており、以下のようなコードを含むメイン アプリケーション ウィンドウがあります (例は少し不自然ですが、私が何をしているかを正確に示しています)。
property Component mainMenuView: MainMenuView {
onMoviesSelected: {
stackView.push(moviesListView)
}
onSettingsSeleted: { }
onAboutSeleted: { }
}
property Component moviesListView: MovieListView {
onMovieSelected: {
stackView.push(movieDetailView)
}
onBack: stackView.pop()
}
property Component movieDetailView: MovieDetailView {
onCreditsSelected: {
stackView.push(personListView)
}
onBack: stackView.pop()
}
property Component personListView: PersonListView {
onPersonSelected: {
// Pending...
}
onBack: stackView.pop()
}
アイデアは、メニューから選択して、映画を見ることです。映画から選択すると、映画の詳細が表示されます。クレジットを表示することを選択すると、キャストとクルーのリストが表示されます。これはすべて aStackView
を使用し、問題なく動作します。戻るボタンも正常に機能し、戻るときに一度に 1 つずつビューをポップします。
そのため、 から特定の人を選択すると、personListView
すぐに に戻りmoviesListView
、中間の を逃したいと考えていmovieDetailView
ます。ムービー リストには、選択した人物が含まれるムービーのみが表示されるようになっています。
この場合、別のものをプッシュすることができることはわかっていますmoviesListView
が、この例は一般的な問題を説明するために考案されています。
これを行うには、StackView
pop()
メソッドを呼び出して、戻りたい「アイテム」を指定することができます - だから私はこれを試しました:
property Component personListView: PersonListView {
onPersonSelected: {
stackView.pop(moviesListView)
}
onBack: stackView.pop()
}
これを実行すると、エラー メッセージは表示されません (したがって、それが存在することがわかっているとmovieListView
思います) が、直前のビュー、つまりmovieDetailView
. そのビューを見逃して、movieListView
.
に戻ろうとしてmainMenuView
も、直前の に戻るだけmovieDetailView
です。
これは、私が自分のビューにどのように使用しているかに何らかの関係がComponent
ありますか?もしそうなら、どうすればよいですか?それとも何か問題がありますか?