2012-11-03 62 views
0

爲了尊重MVC模式,我想從控制器分離視圖。 例如控制器的獨立視圖

  • QuestionView(從UIView的繼承)
  • QuestionViewController(從UIViewController中

繼承以我控制器,I設置視圖self.view = ...

但是,當我在視圖中按下一個按鈕,它應該從控制器調用一個方法,但視圖不應該知道它的控制器是否正確?

那麼如何將視圖鏈接到控制器?

+0

在視圖類中創建委託對象,並在創建questionview時將它設置爲questionview.delegate = self; //(QuestionViewController對象)。在你的視圖類中,使用這個委託作爲按鈕的所有目標。 – iDev

回答

0

以編程方式將按鈕目標設置爲QuestionViewController的對象。

0

在大多數情況下,只需對控制器部分進行子分類,而不是視圖,就可以完成工作。所以你直接使用UIKit提供的類「開箱即用」。

這是可能的,因爲:

  • 佈局:這個可以存儲在一個NIB文件,並通過控制器來加載。
  • 響應用戶事件:UIcontrols具有通用的回調機制:委託和操作。 '連接'可以在nib文件或控制器代碼中進行。

就我個人而言,當我需要自定義繪圖時,我只能看到子視圖。

因此,View INSTANCE顯然'知道'它的控制器,但它都是通過通用接口完成的,所以視圖代碼對你的控制器一無所知。