我有一个导航 Controller ,我会为收到的每个要问用户的问题推送一个新的 tableviewcontroller,因此如果问了 30 个问题,它会在堆栈中构建多达 30 个 Controller 。
困难在于,在某些 tableviewcontrollers 中,我想通过在该 tableview 内使用另一个导航 Controller 来获取用户的输入:例如,在 tableview(这是堆栈中的许多 View 之一)中,可能有 uitablecell 与右边的箭头说选择你想订购的书,当他点击箭头时,一个新的表格 View 将滑入其中,其中包括要选择的书籍乘以复选标记,然后他将选择并返回主表格 View 并继续主要导航那里。
如何在主导航 Controller 中实现一个新的 navcontroller?或者有什么更好的想法?
编辑:将详细 View 推送到同一个 Controller 可能是一个想法,但是当用户“返回”时它们会立即弹出,但我想在主表中显示书籍(在详细 View 中选择) ,并且当用户再次单击该单元格时,详细 View 将与以前选择的书籍一起出现。这是一个好方法吗
最佳答案
将 UINavigationController 放在 UINavigationController 中是个坏主意。您似乎真正想要的是在从导航 Controller 的堆栈中弹出一些 View Controller 后状态数据的持久性。
我会将状态信息放入持久对象中。如果它是少量的状态数据,我可能会将该数据添加到我知道是持久化的现有对象中,例如应用程序委托(delegate)或 Root View Controller 。我会将一组更复杂的持久数据保存到自定义对象中。该对象将由 Root View Controller 保留,并将为每个后续 View Controller 提供一个引用。该对象可能具有 Controller 收集的数据,该 Controller 已从导航堆栈中弹出,因此不再存在。
关于iPhone:如何使 UI 导航 Controller 彼此内部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7039781/