2012-12-05 36 views
1

我正在開發iPhone的應用程序,我需要將消息從topViewController發送到rootViewController將消息從topViewController發送到iOS中的rootViewController

一種解決方案可能是在導航堆棧中的每個VC中創建委託方法並相應地調用,以便消息將達到rootViewController。但在這種情況下,消息必須通過整個導航堆棧。

任何機構可以幫助我在此用最好的辦法

感謝

回答

2

一種選擇是訪問rootViewcontroller爲,

RootViewController *rootViewController = (RootViewController *)[self.navigationController.viewControllers objectAtIndex:0]; 

,然後做這個對象上進行必要的操作。 navigationController.viewControllers返回導航堆棧中的所有viewControllers。

+0

,謝謝,我用同樣的方法,但有人說,它可能會導致循環依賴之類的事情,並可能導致內存泄漏等請告知 –

+0

@AbdusSamad,這不會導致任何循環依賴。 'navigationController.viewControllers'是navigationController可用的一個屬性,它可以在任何地方使用。在這種情況下,您只是訪問第一個對象並在其上做些事情。確保你沒有保留在你的課堂上。 – iDev

+0

好的,爲我工作。感謝您的快速回答。 –

1

在任何topViewController方法可以提取導航堆棧的RootViewController的 通過

[self.navigationController.viewControllers objectAtIndex:0]; 
+0

和下面發佈的答案不一樣嗎? – iDev

+0

@ACB:是的..也許..i是第二個遲到的一小部分發布這個:B – AppleDelegate