2012-08-08 217 views
0

我已經在導航控制器中推送了一個視圖。對於例如:view1推送view2,如果我想調用view2中的任何view1方法。可能嗎。這是一個很好的做法。如何調用使用導航控制器的方法

TIA

+2

通常的做法是,例如,你可以使用 「代理」 的格局。 – NeverBe 2012-08-08 11:38:51

+0

您可以傳遞通知 – Apurv 2012-08-08 11:42:54

回答

0

有構建您的應用程序來處理它在內部溝通的幾種方式。你想組織的方式取決於你,但你必須具備object oriented programming的基本知識,最好是Model View Controller或其他設計模式。

這裏是你如何組織你的應用程序的幾個例子:

建議1

  • 創建A級,讓你的應用程序創建它的一個實例。

  • 讓A分別創建一個View1和View2的實例並保存對它們的引用。

  • 讓View1調用A中的方法,該方法又可以調用View2中的方法。

  • 讓View2調用A中的方法,該方法又可以調用View1中的方法。

建議2

  • 在您的應用程序中創建視圖1的實例

  • 讓視圖1創建視圖2的實例,並保留引用到它。

  • 讓視圖1視圖2

    的是代表
  • 視圖2可以通過調用其委託調用視圖1的方法,以及視圖1可以通過調用引用調用視圖2的方法。

建議3

  • 創建一些類M1,M2和M3(描述你的應用程序模型)

  • 創建視圖視圖1和View2。

  • 創建一個控制器C類

  • 讓視圖1和視圖2顯示在M1,M2和M3中的信息

  • 當用戶與視圖1或視圖2相互作用,讓他們調用C,方法,其在在M1,M2和M3中調用方法改變它們的狀態。

  • M1,M2和M3的變化將通過View1和View2中顯示的信息反映出來。

0

是的,這是可能的,居然有這樣做的幾種方法:

  1. 使用delegate模式,如NeverBe的意見建議(雖然你仍然需要通過參考來電者)

  2. 創建時只需傳遞View1參考View2,稍後使用該參考調用您需要的方法。

  3. 你可以找到NavigationController棧以前viewController,並調用它有任何公共可用的方法

相關問題