gpt4 book ai didi

c# - 使用数组导航到 ViewControllers

转载 作者:行者123 更新时间:2023-11-29 02:22:41 25 4
gpt4 key购买 nike

我目前正在完善我为(目前仅)IOS 制作的应用程序。在这个应用程序中,我有 15 个不同的 UIViewControllers ,每个都显示不同的数据并使用不同的对象。

我的菜单具有层次结构(不是二进制)。我有 4 个“ parent ”ViewControllers 。这些家长ViewControllers每个人都有 1 个或多个“ child ”ViewControllers :

  1. Roster
    • EventDetails
      • Directions
      • MapView
  2. ChangeRequests
    • NewChangeRequest
    • ChangeRequestDetails
  3. Contacts
    • ContactDetails
      • ProgressReport
        • NewReportEntry
  4. DoubleChecks
    • NewDoubleCheck
    • DoubleCheckDetails
      • DoubleCheckPhotoDetails

关于 parent ViewControllers我用FlyoutMenu (使用数据源)能够导航到其他父级 ViewControllers 。关于 child ViewControllers我有一个自定义后退按钮,附加了一个委托(delegate),可以带我返回上一个菜单。问题来了。

我被分配了将一些菜单相互链接的任务,以提高用户友好性。一个例子:

我目前在 EventDetails菜单。在此菜单中,我想要一个按钮将我带到 NewDoubleCheck菜单。这两个菜单都有一个后退按钮,使用 PopViewController导航回到上一个菜单。如果我访问了 NewDoubleCheck来自 DoubleChecks ,它会带我回到DoubleChecks 。但是如果我从 EventDetails 访问它,它带我回到 EventDetails ,因为它位于堆栈的顶部。这意味着我最终陷入了 EventDetails --> NewDoubleCheck --> EventDetails --> NewDoubleCheck 的无限循环。

长话短说:我希望能够搜索 ViewControllers 的堆栈并能够选择正确的ViewController加载,使用 PushViewController .

我正在考虑在我的应用程序开始时编写一个方法(在我的 FlyOutMenu 初始化附近的某个地方,我认为这将使我成为一个 Dictionary<string, UIViewController> 的数组,其中所有 ViewControllers我的项目,这样我就可以更轻松地搜索和导航。这可能吗?

我知道这是一篇很长的文章,但我很高兴听到任何针对我的问题的意见和解决方案。

提前致谢。

亲爱的问候,比约恩

最佳答案

我在我的一个应用程序中遇到了同样的问题。有趣的是,我检查了商店中的一些“著名”应用程序,发现它们存在“死循环”问题。

我的解决方案是:在导航到 NewDoubleCheck 之前,我会搜索它是否已存在于 navigationController 堆栈中。如果是这种情况,那么我将弹出到那个 viewController,而不是推送一个新的。

像这样:

  if ([self.navigationController.viewControllers[[self.navigationController.viewControllers count]-2] isKindOfClass:[NewDoubleCheck class]]) {
// ViewController already exist, so we need to get back to it
NewDoubleCheck *viewController = (NewDoubleCheck *)self.navigationController.viewControllers[[self.navigationController.viewControllers count]-2];
[self.navigationController popToViewController:viewController animated:YES];
} else {
// Push to NewDoubleCheck
}

关于c# - 使用数组导航到 ViewControllers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27942648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com