将按钮ID从一个.m传递到另一个.m

时间:2011-02-28 21:55:13

标签: objective-c ipad uibutton

需要将按钮ID从一个.m传递到另一个并同时清除我的表视图,以便我可以加载新数据。似乎没有发生任何事情,该表仍然包含它在viewDidLoad上填充的内容和背景图片不会改变。请帮忙。

没有警告或错误,所以我不确定我做错了什么但是ClassTwo.h中senderIdentifier的值总是为0

谢谢。

在我的classOne.m中,我有以下按钮操作

-(IBAction) btnPushViewtabel:(id)sender{    
ClassTwo *classtwo = [[ClassTwo alloc]init];
    classtwo.myTable = nil;
classtwo.senderIdentifier = [sender tag];   
[self.view addSubview:viewtableController.view];
}
ClassTwo.h中的

@interface ClassTwo : UIViewController <UITableViewDelegate, UITableViewDataSource>  {
....
int senderIdentifier; 
} 
@property (nonatomic, readwrite)  int senderIdentifier;  
ClassTwo.m中的

if(senderIdentifier == 0){
  // getNewData
  //set background img1
} else {
  // getNewData
  //set background img2
}

1 个答案:

答案 0 :(得分:0)

  

if(mySenderIdentifier == 0){//   getNewData //设置背景img1}   else {// getNewData // set   背景img2}

这个代码块有什么方法?

修改

这一行:

  

classtwo.mySenderIdentifier = [发件人   标签];

之后调用:

  

viewDidLoad中

换句话说 - 当你检查它时,你还没有实际设置它。

有很多方法可以解决这个问题,但我个人的偏好是为classTwo创建一个自定义的init方法,如下所示:

  

- (ID)initWithSenderIdentifier:(INT)标识符{

if(self=[super init]){

    self.senderIdentifier = identifier;
    self.myTable = nil;

}     
return self; 
     

}

或者需要存储int(因为它仅用于设置背景一次)

  

- (ID)initWithSenderIdentifier:(INT)标识符{

if(self=[super init]){

    if(identifier)//set backgroundimg1;
    else //set backgroundimg2;
    self.myTable = nil;        
}     
return self; 
     

}

你这样使用它:

  

ClassTwo * classtwo = [[ClassTwo alloc]   initWithSenderIdentifier:[sender tag]];

如果这有用,请标记已回答