2013-11-04 73 views
1

我有一個名爲MainViewController的UIViewController。我有另一個名爲ViewMaker的類。 在ViewMaker類中,我有一個如下的函數。從另一個類向當前視圖控制器添加視圖

-(UIView *)GetContentView 
{ 
UIView *return_view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; 

UIButton *done_button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
done_button.frame = CGRectMake(300, 300, 100, 50); 
[done_button setTitle:@"Done" forState:UIControlStateNormal]; 
[return_view addSubview:done_button]; 
return return_view; 
} 

在上面的函數實際上我會添加更多的觀點一樣textviews,標籤等

在MainViewController類我打電話上述方法如下。

-(void)CreateViews 
{ 
UIView *content_view = [[[ViewMaker alloc] init] GetContentView]; 
[self.view addSubview:content_view]; 
} 

現在我已經添加了完成按鈕(和其他部件,例如textviews,標籤等)從MainViewController類的圖。 我的問題是關於添加完成按鈕的目標函數。當我點擊完成按鈕時,我想根據從ViewMaker類返回的視圖中的數據在MainViewController中執行一些操作(如添加一些視圖)。 我該怎麼做? 在此先感謝。

回答

1

我假設你ViewMaker類是一樣PopupContentMaker,

添加到您的完成按鈕:

[done_button addTarget:self action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside]; 
在PopupContenMaker

- (void)doSomething{ 
if ([self.delegate respondsToSelector:@selector(handleDoneButtonTap)]) { 
    [self.delegate performSelector:@selector(handleDoneButtonTap) withObject:self]; 
} 

} 

在PopupContentMaker聲明一個委託財產,並使MainViewController成爲代理,

-(void)GetContentView 
{ 
PopContentMaker *pcm = [[PopupContentMaker alloc] init]; 

pcm.delegate = self; 

[self.view addSubview:[pcm GetContentView]]; 

} 

-(void)handleDoneButtonTap{ 
//Do action after done button 
} 
0

你可以試試:

[done_button addTarget: self 
     action: @selector(buttonClickedMethod) 
forControlEvents: UIControlEventTouchUpInside]; 

這樣按下按鈕時,你可以調用自定義的方法。

0

您可以將目標和操作作爲參數傳遞給getContentView方法,也可以使用委託模式。

相關問題