我有一个应用程序,其附加图像上描述了导航树。基本上,我有两个主屏幕(Home和Profile),两者都可以访问设置屏幕。在该设置屏幕上,我可以转到许多不同的特定设置屏幕进行更改。一旦用户接受任何这些屏幕中的更改,它就会返回主设置屏幕。
后退按钮的预期行为如下:
S{x}
屏幕,它应该返回主设置屏幕。我目前正在使用默认的返回行为,但我在以下情况下遇到了问题:
Home -> Settings -> S1 -> Settings -> S1 -> Settings
如果用户按下后退按钮,我希望它返回主屏幕,但它会返回S1,然后返回设置,然后返回S1,依此类推,具体取决于多少次我进入了S1屏幕。
如何让“设置”视图“记住”它应该回到哪个屏幕?
答案 0 :(得分:2)
不要手动管理视图控制器层次结构。使用UINavigationController
,这就是它的设计目标。当您需要从主屏幕进入设置屏幕时,实例化您的设置视图控制器并将其推入堆栈。当您需要从设置屏幕转到S1时,实例化S1控制器并将其推入堆栈。当您需要从S1返回设置屏幕时,将其从堆栈中弹出。当您需要从设置屏幕返回到主屏幕时,将其从堆栈中弹出。
答案 1 :(得分:1)
听起来你想在这里使用堆栈。每次在不使用后退按钮的情况下导航到新页面时,将旧页面推入堆栈。每次使用后退按钮时,将最后添加的页面弹出堆栈。通过这种方式,您可以“记住”回复的页面,如您所说:)希望这会有所帮助!