我有一个取消按钮,当我按下取消按钮时,我弹出我当前的视图控制器。在弹出我的控制器之前,我想访问上一个视图控制器的一个成员(它是一个类的学生)。所以我是这样做的:
StudentProfileViewController *controller = (StudentProfileViewController*)self.parentViewController;
NSLog(@"%@", controller.student);我的应用在NSLog行崩溃,错误是这样的:
[UINavigationController student]: unrecognized selector sent to instance 0x6865180奇怪的是它说的是"UINavigationController学生“,但我的控制器是UIViewController。
有没有人能说明这一点。我知道有人犯了一些愚蠢的错误。
谢谢
发布于 2012-07-28 22:41:00
只有当您首先从该视图以模态方式呈现时,parentViewController才会返回您正在寻找的控制器。看起来您正在尝试引用堆栈中的前一个控制器,而不是呈现视图。在您的示例中,parentViewController是navigationController,如果您是这样呈现的话。您正在将它强制转换为您希望它成为的控制器类,但这并不能使它成为控制器类。更合适的方法是在init方法中传递您希望引用的对象,或者,最好的做法是,创建一个委托方法来告诉前一个视图这个控制器何时完成,然后让前一个视图按预期做出反应。
https://stackoverflow.com/questions/11701875
复制相似问题