答案 0 :(得分:0)
UINavigationController
是基于堆栈的导航系统。这意味着当您向前导航时,您只需将另一个UIViewController
添加到堆栈中,当您向后导航时,您将从堆栈中弹出UIViewContrller
。
要执行您提出的建议,您需要更改当前位于导航堆栈中的基础UIViewController
。您可以通过func setViewControllers(_ viewControllers: [UIViewController], animated: Bool)
以UINavigationController
编程方式执行此操作,但不能通过故事板执行此操作,因为这不是UINavigationController
的用途。
答案 1 :(得分:0)
UINavigationController
控制器在将新视图控制器推入其中时保留一堆视图(简单来说就是理解)。因此,当您按下它时,它基本上会弹出最后一个视图控制器以显示其父控制器。这也是iOS平台上的正常用户行为。
您正在查看与用户相反的行为,因为您正在打破他们的导航流程。但是,如果你能有一个强有力的案例。您可以手动创建一个后退按钮,该按钮可以推送到收件箱控制器,以便在代码或界面构建器中获得此类行为。
实现这一目标的另一种方法可能是你在其他应用程序中看到的: