我不完全確定這樣做的最佳做法,所以我想我會問。帶有嵌套視圖控制器的iOS自定義導航
下面是該程序的目標:
- 經由根的UIViewController創建的自定義導航控制器,其實際上並不子類的UINavigationController(爲了容易地操縱設計)
- 對於不同的屏幕嵌套視圖控制器(由操縱主視圖控制器)
- 每個嵌套視圖控制器都有自己的筆尖文件
目前,我有它的工作ing,但是每個嵌套視圖控制器不是一個視圖控制器,而是一個子類UIView。我覺得這是不好的做法,因爲我以視圖控制器的方式使用這些UIViews,但沒有視圖控制器的功能(即viewDidLoad)。另外,這些UIViews正在採用UIViewController的通常代理方法(它真的引發了紅旗)。
這實際上是不好的做法?
事情恐怕嘗試切換到UIViewControllers的時候是我仍然要做出的UIView的子類,以確定哪些查看指向,當我通過加載筆尖:
NSArray *bundle = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
for (id object in bundle) {
if ([object isKindOfClass:[SubclassedUIView class]])
currentScreenViewController = (SubclassedUIView *)object;
}
我的天堂還沒有檢查,但我假設我必須在該語句中執行「SubclassedUIView」而不僅僅是UIView,因爲該包中還有其他UIView對象。但是再一次,這種情況可能比現在的情況好一些。
不同的解決方案可能是使MainViewController成爲所有需要委託的UIView的委託,併爲每個嵌套的nib創建包含委託方法的MainViewController類別。
這裏的任何想法?
你也可以檢查解決方案從另一篇文章http://stackoverflow.com/questions/17499391/ios-nested-view-controllers-view-inside-uiviewcontrollers-view – 2015-07-23 10:13:08