0

我正在写一个带有UITableView的程序,并在导航栏中添加按钮,这会导致编辑页面。当你点击表格中的一个项目时,一个视图(rView)被推送到与该项目有关的信息中。这个视图有一个编辑按钮,也可以导向编辑页面。有没有一种方法可以在编辑页面上为done按钮添加if语句,该语句显示“如果parentViewController是要转到rView的UITableView,否则popViewController?”我会假设有一种方法可以做到这一点,但我不确定这样做的语法。由于如果parentViewContoller语句

回答

1

如果我理解正确的话,你有一个UINavigationController和推到它

  1. 一个UITableView
  2. 的“rViewController”(你不能把一个视图,必须是一个控制器)
  3. 的“EditController”

但是有可能省略步骤2,您直接进入编辑屏幕。

现在,当最后一个控制器被弹出时,即使它不在堆栈上,也希望能够总是转到“rViewController”。

首先,parentViewController不是堆栈中的前一个控制器,而是UINavigationController本身,因此它与目前的问题无关。

要做到这一点的方法是通过NSArray显式设置UINavigationController的viewControllers属性。我没有试过,但是这应该工作:

当用户按下“添加”按钮,而不是只推编辑视图控制器,做这样的事情:

NSArray* stack = navigationController.viewControllers; 
navigationController.viewControllers = [stack arrayByAddingObject:rViewController]; 
[navigationController pushViewController:editController animated:YES]; 

(顺便说一句,我建议不要使用像“rView”这样的名称,除非可能用于非常短暂的局部变量,比如在循环中。使用描述性名称是Cocoa成语的一个重要组成部分,并且从长远来看将对您有很大帮助。)