2012-07-28 47 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