2014-03-13 34 views
0

我有一個包含幾個自定義的uitableviewcells的uitableviewcontroller(mainTVC)。訪問按鈕附加到自定義單元格頭文件

uitableviewcontroller是swrevealview的前屏幕(https://github.com/John-Lluch/SWRevealViewController) - 我需要將revealToggle函數附加到其中一個自定義單元格內的按鈕,以在後視圖中顯示消息屏幕。

該按鈕在定製單元連接作爲IB出口集文件如下 -

msgPost.h:

@property (weak, nonatomic) IBOutlet UIButton *msgsBtn; 

定製細胞然後msgPost.h文件被包括在mainTVC.m文件 - 我想編寫一個按鈕被點擊時觸發的函數 - 基本上它需要執行以下操作 -

- (void)buttonImpMsg 
    { 
     NSLog(@"Back Button Pressed!"); 
     [self.revealViewController revealToggle:nil]; 
     [self hide]; 
    } 

但我不知道如何創建從mainTVC.m文件訪問msgsBtn屬性 - 任何提示?

編輯

基本上我需要知道的是如何訪問按鈕從父的UITableView控制器點擊動作 - (按鈕連接爲一個IBOutlet到.h文件中被導入的定製單元進入uitableviewcontrollers m文件)

回答

1

它可以通過選擇器來完成。在您的自定義單元格類定義

定義選擇屬性(CustomCell.h文件):

@property SEL buttonPressedSelector 
@property id buttonPressedTarget 

把這個在您的自定義類的方法,這是當按下按鈕,你叫:

-(IBAction)buttonPressed:(id)sender 
{ 
    [self.buttonPressedTarget performSelector:self.buttonPressedSelector]; 
} 

將這個到您的視圖控制器:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"myCell"]; 
    // Your code... 
    cell.buttonPressedSelector = @selector(cellBtnPressed); 
    cell.buttonPressedTarget = self; 
} 

-(void) cellBtnPressed 
{ 
    NSLog(@"Button Pressed Event in your View Controller."); 
    // Your code is here 
} 

在我的例子CustomCel l是你的msgPost,View Controller是mainTVC。

+0

作品 - 感謝您的幫助@Egor – Dancer

0

你需要鏈接按鈕的方法,即按住ctrl-點擊界面生成器中的按鈕,並從按鈕拖動到「文件的所有者」圖標。

+0

歡呼聲 - 但我已經這樣做了 - 它作爲IB插座附加到自定義單元格(msgPost.h)頭文件 - 我的問題是如何從父uitableviewcontroller訪問此屬性。 m文件。 – Dancer

+0

對不起,我不明白你想實現的流程 – Moonwalkr

+0

不用擔心 - 解釋 - customCell包含一個按鈕 - 按鈕作爲ibOutlet(稱爲msgsBtn)附加到自定義單元頭文件 - customcells頭文件然後導入到父uitableviewcontrollers m文件中 - 我想從父uitableviewcontrollers m文件訪問msgsBtn上的單擊操作 - 但不知道如何操作 – Dancer

相關問題