2011-06-27 56 views
0

我有一個類:MainViewController獲取當前視圖實例?

該控制器的一個實例正在控制當前視圖。

我有另一個類:DetailClass其中我有一個MainViewController,myMainViewController的實例。

如何設置myMainViewContoller等於當前控制用戶看到的視圖的MainViewController實例?

回答

2

我覺得你很困惑「實例」和「指向實例的指針」。如果您說DetailClass有一個實例變量,它是指向MainViewController實例的指針,那麼您的問題會更有意義。我會認爲這就是你的意思。

通常在這些情況下,其中一個控制器創建了另一個控制器,或者其他一些對象創建了這兩個控制器。第一種情況在基於導航的應用程序中很常見,如果兩個控制器由標籤欄控制器管理,則第二種情況很可能會發生。無論哪種方式,通常都有一些知道兩個控制器的對象。因此,假設您的MainViewController創建了一個DetailClass實例。如果是這樣的話,它可以簡單地傳遞一個指向自身的指針作爲初始化的一部分,或者可能在創建了DetailClass實例之後。 DetailClass是否有一個-setMyMainViewController:方法?如果是的話,MainViewController可能有一些如下所示的代碼:

//... 
DetailClass *detailController = [[DetailClass alloc] initWithNibName:nil bundle:nil]; 
[detailController setMyMainViewController:self]; 
//...