2013-11-27 86 views
1

我在我的appDelegate定義這兩個屬性裏面:添加子視圖的視圖從另一個對象

@property (nonatomic, strong) UIView * mainView; 
@property (nonatomic, strong) MyCustomClass * customObj 

什麼是從代碼中添加子視圖mainViewcustomObj的最佳方式?

我沒有提供任何示例代碼,因爲(a)我的代碼很糟糕,(b)我只是想了解這樣做的最佳方法,所以我可以從中學習,而不是有一個解決方案到一個特定的問題。

非常感謝。

+0

解釋它更好+提供一些解決方案,你已經試過 –

回答

1

這取決於什麼樣的類MyCustomClass的是。它負責構建mainView的視圖層次嗎?然後我會注入MAINVIEW到customObj參考,像這樣:

customObj = [[MyCustomClass alloc] initWithView:mainView]; 

在這種情況下,customObj將某種建設者的對象,創建內部MAINVIEW視圖層次結構。然後,我用addSubView:選擇內部MyCustomClass:

-(id)initWithView:(UIView*)view{ 
    if(self = [super init]){ 
     [view addSubView: ...]; 
     [view addSubView: ...]; 
     [view addSubView: ...]; 
    } 
} 
2

好,那麼在MyCustomClass創建的方法是這樣的:

-(void)addSubViewToView:(UIView *)view 
{ 
    [view addSubview:otherView]; 
} 

然後調用它像這樣:

[customObj addSubViewToView:mainView]; 
+1

或與該視圖初始化customObj - 如果主類創建對象。 –