程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> uibutton-點擊按鈕時實現調用方法

uibutton-點擊按鈕時實現調用方法

編輯:編程綜合問答
點擊按鈕時實現調用方法

有一個CustomCell,想實現在點擊它所在按鈕時會發出警報。不知道怎麼訪問這個方法?

  @interface CustomCell : UITableViewCell {

IBOutlet UIImageView    *imageViewCell;
IBOutlet UILabel        *theTitle;
IBOutlet UIButton*imageButton;

  }
  @property(nonatomic,retain) IBOutlet UIButton*imageButton;
  @property(nonatomic,retain) UIImageView *imageViewCell;
  @property(nonatomic,retain) UILabel *theTitle;

 -(IBAction)imageButtonAction;

 @end
     @implementation CustomCell
     @synthesize imageViewCell;
     @synthesize theTitle;
    -(IBAction)imageButtonAction{
     }

不是要在這裡調用方法,我希望的是方法在使用CustomCell中類中。

最佳回答:


這裡就需要用到“代理協議”的方法來解決這個問題
首先在你的CustomCell的.h頭文件中定義一個“協議”protocol ,並在CustomCell中添加一個delegate的屬性

@protocol CustomCellDelegate  <NSObject>
//創建一個當點擊imagebutton時顯示title的信息
-(void)showTitle:(NSString *)title;
@end

@protocol CustomCellDelegate;
@inertface CustomCell: UITableViewCell
//多添加一個屬性
@property (nonatomic,assign) id <CustomCellDelegate> delegate;
@end

在.m實現文件的imagebutton click事件中

@implementation CustomCell
@synthesize delegate;

//imagebutton的點擊事件
-(IBAction)imageButtonAction {
     if ([delegate isRespondToSelector:@selector(showTitle:)]) {
          [delegate showTitle:theTitle.text];  //將UILabel的內容傳遞到消息接收者
     }
}
@end

在帶有CustomCell的UITableView 所在的viewController 的.h頭文件中添加CustomCellDelegate 的協議

@interface myViewController:UIViewController  <CustomCellDelegate>

@end

在viewController 的.m實現文件中,UITableView 的datasource 協議方法中:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*) indexPath {

          CustomCell *cell=[[[CustomCell alloc] init] autorelease];
          cell.delegate=self; //指明CustomCell的代理為當前的viewController 

          ............ //todo
          return cell;

}

//實現CustomCellDelegate的協議方法
-(void)showTitle:(NSString *)title {
    NSLog("the cell title is :%@",title);
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved