2013-12-11 73 views
3

是UITableViewController和UIViewController的超類的任何ViewController嗎?因爲我需要它不復制我的業務邏輯。UITableViewController和UIViewController的超類

+0

請指定您正在嘗試做什麼。 –

+0

'UITableViewController'只是一個'UIViewController',它實現了'UITableViewDateSource'和'UITableViewDelegate'。所以你可以做的是在一個custum的基礎視圖控制器中實現這些,你根本不需要'UITableViewController'。特別是如果您爲'UITableViewDateSource'的數據源創建自定義類。 – rckoenes

回答

0

在您的應用程序中使用MVC模式,您可以創建Model來存儲您的業務邏輯,並且它可以通過ViewController對象與您的視圖進行通信。

-1

創建NSObject類和編寫所有業務邏輯那裏,讓它爲Singletone和調用這個類在任何你想

2

正如其他評論者說,的UITableViewController是一個相當薄的API在UIViewController之上。您可能可以從UIViewController開始,並添加所需的邏輯來管理您的表視圖到您的自定義類。但是,有些事情是UITableViewController支持的,比如靜態表格視圖和單元格原型,如果你沒有使用UITableViewController,那將很難或不可能支持。

另一種替代方法是創建一個UIViewController類別並將其他方法添加到該類別中。類別方法可用於添加到其中的類和所有子類,就好像您將方法添加到基類一樣。

然而對類別方法有一些限制。

  • 您不能從基類重寫方法,只添加新方法。
  • 您無法在類別中添加實例變量。
+0

如果您正在從第三方框架向類中添加方法,請確保爲類別方法名稱添加前綴,以免它們現在或將來不小心與現有方法名稱(尤其是私有方法)相沖突。 – jlehr

+0

@Jlehr,好點。 –

0

NSObject的是最..你需要提供數據源和委託類實現表視圖控制器類的父..

2

目前我正在試圖完成相同的(創建一個超爲我的所有VC放置自定義邏輯來執行)。在我的特殊情況下,我想使用谷歌分析的API來跟蹤屏幕瀏覽量,這應該在viewWillAppear中調用。這需要我爲每個視圖控制器在該方法中放置任何需要的代碼。

但我發現這個寶石:method sizzling。謝謝先生。馬特湯普森爲此!

如果您仔細閱讀,您會發現您將能夠創建一個類別,在該類別中您可以替換給定選擇器的現有實現。然而,正如@duncan d指出的那樣,如果您試圖擴展行爲,您可以簡單地創建一個常規類別。

相關問題