這是一個關於最佳實踐的問題。在界面生成器和模塊化中使用'外部對象'
我有一個使用標準iOS選項卡控制器的應用程序。
我想要做的事情之一是將XIB分成不同的文件。我可以通過在每個選項卡控制器的「NIB名稱」部分中指定'child'XIB來實現此目的。到現在爲止還挺好。
在這個應用程序中,我有一個幾乎所有的UIViewControllers(例如:提供Web服務調用)都使用的對象。我們稱之爲MyServices。
在單個XIB解決方案中,我可以將對象拖到Objects列表上,將類型設置爲「MyServices」。我可以在每個ViewController中聲明一個MyServices *類型的IBOutlet,並將它們連接在一起。這很好地工作。但是,如果我將視圖移出到單獨的XIB,則需要訪問MyServices對象的任何進一步向下的堆棧的控制器都是不幸的,因爲對象不再存在於該XIB中以便執行接線。
我希望能夠做的是聲明一個'外部對象',然後連線。但是我看不到''parent'XIB中的MyServices對象作爲'XIB'中的'external'對象的'傳遞'方式。
這只是在IB不支持?什麼是最好的選擇?
我無法在控制器中指定XIB名稱,並且可能在運行時以編程方式創建它(推測使用某種loadFromNib代碼聲明瞭提供外部對象的字典)。這確實意味着這樣做的控制器必須知道MyServices,即使它不直接使用它。
另外,我可以在每個UIViewController中有一個'dataProvider',所以不用直接將MyServices設置爲IBOutlet,它可以做[dataProvider getServices]。再次,必須連接到可以做到這一點的東西 - 這限制了XIB可以分解的地方。它感覺有點不必要的冗長..
這裏的最佳做法是什麼?