這可能是一個非常基本的問題,但我還找不到答案。 我有一個UITableView作爲我的應用程序的菜單。表格視圖上的每一行在被選中時都會打開UIViewController的一個不同的子類。有沒有更好的方法來從表視圖中加載視圖控制器?
此刻,我的代碼與Apple在UICatlog示例中使用的方式相同。 在主視圖控制器(表視圖)中,每個菜單項在數組(menuList)的字典中描述。每個字典都包含該屏幕的UIViewController子類的實例以及有關菜單項的其他數據。當用戶選擇一行時,didSelectRow atIndexPath開始並調用相應的視圖控制器,該視圖控制器存儲在字典中menuList數組的indexPath.row處。
當表視圖第一次加載時,分配和初始化每個視圖控制器似乎非常浪費。
我的問題是:有沒有比在UICatalog中演示的更好的方式來分配/初始化我的視圖控制器子類只有當相關聯的行被點擊?我知道我可以在didSelectRow中使用一個複雜的if..else結構,但是這會導致一個非常長的didSelectRow方法並破壞封裝。我想知道是否有更簡單的方法來實現這一點,分配和初始化適當的視圖控制器基於字典的數據)
謝謝,但我沒有使用故事板。我的應用程序的構建與UICatalog示例代碼類似。 – amirfl
它應該是可能的相同的方式沒有故事板和seque編程或只是推子視圖(不知道確切的方式把絕對可能)。 – ipek
Offcourse我正推着子視圖,那不是問題(參見UICatalog示例代碼)。問題在於,如何在需要時乾淨地分配/初始化正確的視圖控制器子類,而不會創建長而凌亂的didSelectRow方法。 – amirfl