UINavigationController 直接进入“下一步”控制器?

发布于 2024-09-06 03:31:51 字数 753 浏览 0 评论 0原文

我有一个具有 3 个层次结构的 UINavigationController:菜单->子菜单->详细信息。菜单和子菜单是 UITableViews,而详细信息是一些自定义视图控制器。

我想在详细信息视图中添加“上一个”和“下一个”按钮,这将允许我直接从当前子菜单转到上一个和下一个项目。

例如,假设我有:

|Menu    |M1 Submenu |SM2 Details
--------------------------------
M1  ->   |SM1        |D1
M2       |SM2   ->   |D2
M3       |SM3        |D3  // Let's say we are here now
                     |D4
// ... etc ...

// The arrows represent items the user selected

假设应用程序当前显示 D3 详细信息视图控制器。这意味着我们当前处于M1->SM2->D3。现在在 D3 中,如果用户按下“下一步”按钮,它应该显示 D4。同样,如果他/她按下“上一个”按钮,它应该显示 D2。

因此,“下一个”和“上一个”按钮本质上与按导航控制器后退按钮然后选择列表中的下一个项目执行相同的操作。

实现这一点的最佳方法是什么?我是否必须弹出回到子菜单,然后推送另一个详细信息控制器?我是否直接从详细信息视图控制器调用子菜单控制器(如果是的话,如何调用)?

谢谢。

I have a UINavigationController with 3 levels of hierarchy: Menu->Submenu->Details. Menu and Submenu are UITableViews whereas Details is some custom view controller.

I want to add 'previous' and 'next' buttons in the Details view that will allow me to directly go to the previous and next items from the current Submenu.

For example let's say I have:

|Menu    |M1 Submenu |SM2 Details
--------------------------------
M1  ->   |SM1        |D1
M2       |SM2   ->   |D2
M3       |SM3        |D3  // Let's say we are here now
                     |D4
// ... etc ...

// The arrows represent items the user selected

So let's say the app is currently showing the D3 Details view controller. This means that we are currently in M1->SM2->D3. Now in D3 if the user presses a 'next' button it should show D4. Similarly if s/he presses the 'previous' button it should show D2.

So the 'next' and 'previous' buttons essentially do the same thing as pressing the navigation controller back button and then selecting the next item in the list.

What would be the best way to implement this? Do I have to pop back up to the submenu and then push another Details controller? Do I call the submenu controller directly from the details view controller (if so how)?

Thanks.

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

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

发布评论

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

评论(1

梦晓ヶ微光ヅ倾城 2024-09-13 03:31:51

确实没有必要调用父控制器。您可以执行以下操作:

假设您在子菜单控制器中保留“详细”项目的数组,而不是使用所选项目初始化详细控制器,而是使用该数组和所选索引对其进行初始化。

然后,当按下上一个/下一个按钮时,更改选定的索引并相应地更新视图。

There's really no need to call the parent controller. Here's what you can do:

Assuming you keep an array of "detail" items in Submenu Controller, instead of initializing the detail controller with the selected item, initialize it with the array and the selected index.

Then, when the prev/next buttons are pressed, change the selected index and update the view accordingly.

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