FirstView
の List
のところを、 List { ForEach(env.items) { item in ItemView(id: item.id) } }
とすると、いったんpopされるけどすぐにpushされてtrue、falseの状態も保たれてます。 List
と ForEach
の違いはなに? List
を消すと(つまり ForEach
だけにすると)、TableView表示はされなくなるんですが、AとかBとかの部分を押すと画面遷移はします。ただ、そうすると強制popは起こらなくなります。List
と NavigationLink
の組み合わせでこの現象は起こってるぽいですね。List
は UITableView
と同じで lazily に動作して見えてない部分は作らない機構があって、見えてないとプログラムから遷移させられないという問題が書かれているんですが、今回のもそのlazilyなための仕組みが関係あるかもしれませんね。