【发布时间】:2014-05-23 21:34:06
【问题描述】:
我是 Objective-C 编码的新手,我正在尝试使用 pop to viewController。要在点击按钮时执行此操作,我使用
[self.navigationController popToViewController:(what goes here) animated:YES];
我知道它是一个UIViewController*,但我想知道我在哪里声明它以及我将使用什么代码来声明它。
我的基本情节提要是我有 4 个视图控制器 A、B、C、D,A 是根,它被推到 B,它被推到 C,C 被推到 D,我的按钮在 D 上,我正试图弹回B. index 方法中的对象不起作用,因为它并不总是去A->B->C->D,有时它会去A->C->B->D 所以
[self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex:2] animated:YES];
所以这行不通。
提前感谢您的帮助。抱歉,这个问题太简单了。
【问题讨论】:
-
您的问题是关于推送、弹出或如何制作视图控制器?
-
如果视图控制器 B 在导航堆栈中,则 popToViewController 是正确的方法。您需要保留对视图控制器 B 的引用,例如作为应用程序委托的属性,或者您可以遍历导航控制器 viewcontrollerwithrestorationidentifier 数组来识别您需要的引用 - 可能使用 isMemberOf 类方法
-
如果你有故事板,你根本不应该打电话给
pushViewController。你应该使用 push segue。 -
@MJN 对那个错字感到抱歉,我该如何将它作为属性保存在应用程序委托中?如何保存它的参考?谢谢
-
如果您打错字,请更新您的问题。
标签: ios objective-c uinavigationcontroller pushviewcontroller poptoviewcontroller