2012-07-28 43 views
1

我有一个取消按钮,当我按下取消按钮,然后我弹出我的当前视图 - 控制。弹出我的控制器之前,我想访问一个成员(这是一类学生)以前的视图控制器。所以,我这样做是这样的:上线的NSLog访问parentviewcontroller

StudentProfileViewController *controller = (StudentProfileViewController*)self.parentViewController; 
    NSLog(@"%@", controller.student); 

我的应用程序崩溃,错误是这样的:

[UINavigationController student]: unrecognized selector sent to instance 0x6865180 

奇怪的部分是它说:“[UINavigationController的学生]:”但是我的控制器的UIViewController。

任何人都可以阐明这光。我知道一些愚蠢的错误正在完成。

感谢

回答

3

的parentViewController会回到你正在寻找只有当你有模态,从摆在首位这一观点提出的控制器。它看起来是您试图在堆栈中,而不是呈现视图引用以前的控制器。 在你的情况下,parentViewController是navigationController如果这是你如何呈现。你将它投射到你希望的控制器类上,但这并不是如此。 更合适的方法是在init方法中传递想要引用的对象,或者最好是使委托方法在控制器完成时告诉前一个视图,然后让前一个视图按预期做出反应。

+0

嗨,院长,我还在学习代表,你能否给我一个很好的教程链接来使用这个需求委托,就像我想通知我以前的视图控制器,当我完成和流行。谢谢 – 2012-07-28 14:54:54

+0

我找到了。谢谢:d – 2012-07-28 15:33:51

+0

对不起,我是离办公桌,并没有看到你的问题。让我知道你是否仍然陷入困境。很高兴为您指出正确的信息。 – 2012-07-28 18:11:38