【问题标题】:Thoughts about UINavigationController关于 UINavigationController 的思考
【发布时间】:2012-02-07 19:33:55
【问题描述】:

对于我的新应用,我计划使用 UINavigationController 来推送/弹出其他控制器。

这是场景。

应用程序正在运行。通过导航控制器,我将第一个控制器推入堆栈。用户进行一些选择并触摸按钮。然后导航控制器推动第二个控制器,依此类推,而用户到达最后一个控制器,即第六个控制器。从第一个到第五个控制器将永远不会在应用程序中再次使用。

对于此类应用,这是正确的方法(使用导航控制器)吗?

【问题讨论】:

  • 您能否为您的问题添加更多详细信息?你说的“控制器不再被使用”是什么意思?这是一次性配置的事情吗?还是某种“初始偏好”?或者是每次运行应用程序时选择的值(但用户一旦到达第六个控制器就不会返回)?
  • 我的意思是用户一旦到达第六个控制器就再也回不去了。
  • 他们能在到达第六个控制者之前回去吗?比如:“一>二>三>回到二>三”?
  • 我是否正确地假设这是对应用程序的某种首次运行介绍?填写详细信息等
  • @Ell Neal,请查看我对 Alex Wayne 答案的评论。

标签: objective-c ios


【解决方案1】:

我不完全确定您的意思,但我想您需要引导用户完成第 1 步到第 5 步,然后当他们在第 6 步完成时,他们无法返回。对吗?

我做了类似的事情。我所做的是以模态方式弹出视图 1-6(并从 1 导航到 6)以中断当前流程,一旦用户完成,该值就会传递回您从中填充模态视图的视图(委托)然后你就做下一步。

不确定我是否回答了您的问题。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    如果一旦他们到达第 6 个 viewController,他们将永远不会回到其他 viewController,您总是可以弹出到 rootViewController,然后将第 6 个 viewController 推上。这样其他 viewController 就不在 navigationController 堆栈中了。

    【讨论】:

      【解决方案3】:

      听起来您有 5 个链接屏幕的流程,然后是应用的其余部分。

      如果是这样,是的,UINavigationController 在这里可以正常工作。您将推动这 5 个屏幕,完成后您将销毁导航控制器并将其替换为应用程序其余部分的某些视图。

      所以UINavigationController 将控制您应用的一部分,而不是您的整个应用。

      【讨论】:

      • 其实第五个控制器收集之前控制器的所有数据。在第五个控制器中有一个按钮,用于推动第六个视图。如果用户在第六个视图中摇动设备,则应再次加载第五个视图。然后用户可以更改一些值并再次加载第六个视图,依此类推。
      猜你喜欢
      • 2010-09-18
      • 2010-10-19
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多