Following the B4XPages example .. additional pages are initialized and Added in the B4XMainPage B4XPage _Created Sub (not Initialize)
Making that change , the "pgTwo" _Appear event fires correctly.
B4X:
'from B4X Pages example ...
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("Login")
Page2.Initialize
B4XPages.AddPage("Page 2", Page2)
Page3.Initialize
B4XPages.AddPage("Page 3", Page3)
End Sub
Maybe just B4XPages.AddPage must be into the B4XMainPage B4XPage_Created (the initialization of any page can be placed, rightly, in Initialize) and the first time it is called the map inside it is initialized (it should be done before).
It is also correct that in the Initialize you don't write executable commands (such as B4XPages.AddPage)