Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c if parentViewContoller语句_Objective C_Iphone_Syntax_If Statement_Parentviewcontroller - Fatal编程技术网

Objective c if parentViewContoller语句

Objective c if parentViewContoller语句,objective-c,iphone,syntax,if-statement,parentviewcontroller,Objective C,Iphone,Syntax,If Statement,Parentviewcontroller,我正在编写一个程序,在导航栏中有一个UITableView和add按钮,该按钮指向一个编辑页面。单击表中的项目时,将推送一个视图(rView),其中包含与该项目相关的信息。此视图有一个“编辑”按钮,该按钮也会指向“编辑”页面。是否有一种方法可以在编辑页面上为“完成”按钮放置一个if语句,该语句会说“如果parentViewController是要转到rView的UITableView,否则popViewController?”我假设有一种方法可以做到这一点,但我不确定这样做的语法。谢谢如果我理解

我正在编写一个程序,在导航栏中有一个UITableView和add按钮,该按钮指向一个编辑页面。单击表中的项目时,将推送一个视图(rView),其中包含与该项目相关的信息。此视图有一个“编辑”按钮,该按钮也会指向“编辑”页面。是否有一种方法可以在编辑页面上为“完成”按钮放置一个if语句,该语句会说“如果parentViewController是要转到rView的UITableView,否则popViewController?”我假设有一种方法可以做到这一点,但我不确定这样做的语法。谢谢

如果我理解正确,您有一个UINavigationController并将其推上

  • 一个可供选择的观点
  • “rViewController”(不能推送视图,必须是控制器)
  • “编辑控制器”
  • 但有可能省略步骤2,直接进入编辑屏幕

    现在,当最后一个控制器弹出时,您希望能够始终转到“rViewController”,即使它不在堆栈上

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

    实现这一点的方法是使用NSArray显式设置UINavigationController的viewControllers属性。我还没有尝试过,但这应该可以:

    当用户按下“添加”按钮时,不只是按下“编辑视图”控制器,而是执行以下操作:

    NSArray* stack = navigationController.viewControllers;
    navigationController.viewControllers = [stack arrayByAddingObject:rViewController];
    [navigationController pushViewController:editController animated:YES];
    
    (顺便说一句,我建议不要使用像“rView”这样的名称,除非是非常短暂的局部变量,比如循环中的变量。使用描述性名称是Cocoa习语的一部分,从长远来看会对您有很大帮助。)