---@class PageView local PageView = { pageStack = {} ---@type Page[] } local function pushStack(t, o) table.insert(t, 1, o) end local function popStack(t) return table.remove(t, 1) end function PageView:new(o, rootPage) o = o or {} setmetatable(o, self) self.__index = self rootPage.viewHandler = self pushStack(self.pageStack, rootPage) end ---Navigate to page ---@param page Page function PageView:navigate(page) page.viewHandler = self pushStack(self.pageStack, page) end function PageView:back() self.pageStack[1].viewHandler = nil popStack(self.pageStack) end function PageView:render(deltaTime) if self.pageStack[1] then self.pageStack[1].render(deltaTime) end end return PageView