没有 UINavigationController 的类似导航的行为

发布于 2024-12-09 07:19:33 字数 533 浏览 0 评论 0原文

我正在编写一个项目,其中从 xml 文件读取一些具有各自类别和子类别的产品,然后必须将其显示在 UITableView 中。

问题是,没有固定的级别深度(xml 标记如下所示:类别 > 子类别 > 子子类别 > ... > 等),因此我无法拥有一组固定的视图,因此无法使用UINavigationController。

所以目前 - 它工作得很好 - 我从 xml 文件加载的一些 NSMutableArray 中读取数据,并在 UITableView 中显示它们。按预期工作。这些对象甚至相互之间有链接,因此新数据集是 UITableView 上最后按下的元素的子级。

但是,显然,我需要一个后退按钮,这就是我陷入困境的地方,我之前已经使用 UINavigationController 完成了它,但我似乎找不到方法

a)向导航栏添加后退按钮(我通过 IntefaceBuilder 添加了一个 UINavigationBar 并将其链接到 IBOutlet)

b) 关联一些代码以在按下按钮时调用先前的数据集。

有什么帮助吗?

i am coding a project in which some products with their respective categories and subcategories are read from an xml file and then must be displayed in a UITableView.

Problem is, that there is no fixed depth of levels (the xml tag reads like this: Category > subcategory > subsubcategory > ... > etc) so i can't have a fixed set of views and thus to use a UINavigationController.

So at the moment - and it's working pefectly - i read the data from some NSMutableArrays i have loaded from the xml file and i am showing them in a UITableView. Working as intended. The objects even have links to eachother and so the new data set is a child of the element last pressed on the UITableView.

But, obviously, i need a back button, and this is where i got stuck, i've done it with UINavigationController before, but i can't seem to find a way to

a) add a back button to the navigation bar (I added a UINavigationBar via the IntefaceBuilder and linked it to the IBOutlet)

b) associate some code to call the previous data set when the button is pressed.

Any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

糖粟与秋泊 2024-12-16 07:19:33

您仍应遵循通常的导航控制器设计模式。如果您有多个级别的类别,请递归调用同一视图控制器。

我曾经做过这样的实现(也是基于 xml 文件),在 didSelectRowAtIndexPath: 中,我会检查所选对象是否有更多“子项” - 在这种情况下,我会推送另一个等效视图导航堆栈顶部的控制器;如果没有,我会展示详细视图控制器。

You should still follow the usual navigation controller design pattern. If you have multiple levels of categories, call the same view controller recursively.

I once did such an implementation (also on the basis of an xml file) where in didSelectRowAtIndexPath: I would check if the object selected has any more "children" - in which case I would push another equivalent view controller on top of the navigation stack; if not, I would present the detail view controller.

扮仙女 2024-12-16 07:19:33

如果你想实现这一点,你必须实现一个堆栈结构,以及它的压入和弹出功能。与 UINavigationController 的工作方式相同。如果您的解决方案不是完全定制的解决方案,我会简单地使用 UINavigationController 推送 UITableViewControllers 并让它为我处理堆栈,而不是重新发明轮子。

If you want to achieve this you have to implement a stack structure, with it's functions to push and pop. Just the same way as UINavigationController works. If your solution is not a fully customized one I would simply use UINavigationController pushing UITableViewControllers and have it handle the stack for me, as opposed to re-inventing the wheel.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文