我有一个导航 Controller ,它包含应用程序的主要 View (各种仪表板),然后通过 segues 等分支到应用程序中的其他 View 。
有一个汉堡包菜单,它使用了 Cocoa Pods 滑动 View Controller 。基本上,我的问题是是否可以通过菜单导航到特定的 View Controller 并保持正确的“堆栈”返回。我知道您可以只推送到一个 Controller ,但我希望(如果可能的话)保留 View 层次结构。
例如
菜单中有一个指向 Page 1.3
的链接我希望能够推送到Page 1.3
然后在该 View 上使用后退按钮转到 Page 1.2,然后是 Page 1.1 等等。
我不确定这是否是 iOS 应用程序中的标准做法,或者采用 Android 风格的方法并仅向堆栈添加 View 是否更好,而不用担心在它们返回时尝试形成正确的导航结构观点。
希望所有这些都有意义。
最佳答案
如果您愿意在代码中而不是使用 segue 来完成此操作,则可以使用 UINavigationController 的 setViewControllers:animated:
方法(请参阅 documentation )。您将需要实例化相关的 VC,使用任何相关数据/状态初始化它们,然后按照从 Root View Controller 到顶 View Controller 的顺序用它们构建一个数组:
NSArray *newStack = @[rootVC, ..., page11VC, page12VC, page13VC];
[self.navigationController setViewControllers:newStack animated:YES];
然后从 page13VC 弹出将转到 page12VC,等等。您可以使用导航 Controller 的 viewControllers
属性获取 rootVC 和任何其他预先存在的 VC。
关于iOS - 如何推送到 View Controller 并在返回时保持正确的 "View Stack",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27835841/