我正在编写一个带有 UITableView 的程序,并在导航栏中添加按钮,这会导致编辑页面。当您单击表中的某个项目时,会推送一个包含与该项目相关的信息的视图 (rView)。此视图有一个编辑按钮,该按钮也可通向编辑页面。有没有一种方法可以让我在编辑页面上为完成按钮添加一个 if 语句,上面写着“如果 parentViewController 是要转到 rView 的 UITableView,否则是 popViewController?” 我会假设有一种方法可以做到这一点,但我不确定这样做的语法。谢谢
问问题
64 次
1 回答
1
如果我理解正确,你有一个 UINavigationController 并推上它
- 一个 UITableView
- 一个“rViewController”(你不能推送视图,必须是控制器)
- 一个“编辑控制器”
但也有可能省略第 2 步,直接进入编辑画面。
现在,当弹出最后一个控制器时,您希望能够始终转到“rViewController”,即使它不在堆栈上。
首先,parentViewController 不是堆栈上的前一个控制器,而是 UINavigationController 本身,所以它与现在的问题无关。
这样做的方法是使用 NSArray 显式设置 UINavigationController 的 viewControllers 属性。我没有尝试过,但这应该可以:
当用户按下“添加”按钮时,不仅仅是按下编辑视图控制器,还可以执行以下操作:
NSArray* stack = navigationController.viewControllers;
navigationController.viewControllers = [stack arrayByAddingObject:rViewController];
[navigationController pushViewController:editController animated:YES];
(顺便说一下,我建议不要使用像“rView”这样的名称,除非可能是非常短暂的局部变量,比如在循环中。使用描述性名称是 Cocoa 习语的一部分,从长远来看会对你有很大帮助跑。)
于 2009-12-06T19:21:51.983 回答