2014-03-27 42 views
0

我有一个UIView附加到@selector,该方法recives发件人,所以我想知道如何通过查看方法的发件人分辨哪个UIView ...比较UIView与方法ID发件人

这是我迄今所做的:

UITapGestureRecognizer *singleTypeTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(loadInfoView:)]; 

使触摸被recived ...我也把它应用到几个UIViews。 然后在loadInfoView方法中,我有这个。

- (void)loadInfoView:(id)sender 
{ 
    UIView *tempTextfieldMask = sender; 
    NSString *viewName = [[NSString alloc] init]; 
    NSString *oldText = [[NSString alloc] init]; 
    if (tempTextfieldMask == descMask) { 
     viewName = @"desc"; 
     oldText = descriptionText.text; 
    } else { 
     viewName = @"type"; 
     oldText = typeTextF.text; 
    } 
} 

我发送对象分配给我的tempTextfieldMask然后我使用if语句来比较,所以我可以拿起它被按下一个...

目前这dosnt工作和一切去其他条款...任何帮助将不胜感激。这是做这件事的最好方法吗?还是有另一个?

+0

什么呢debugg呃说? “tempTextfieldMask”和“descMask”的内容是什么? –

回答

1

给任何潜在的sender鲜明的标签,然后就...

switch([sender tag]) { 
    case myView1Tag: 
     // stuff 
     break; 
    case myView2Tag: 
     // stuff 
     break; 
// etc... 

意见可以给出标签上的脚本或者他们可以通过编程方式分配:

myView1.tag = myView1Tag; 

而且我不建议把所有的标签在enum

typedef NS_ENUM(NSInteger MyViewTags) { 
    myView1Tag = 101, 
    myView2Tag = 102, 
    myView3Tag = 103 
}; 
+0

完美!总是忘了标签......这样更好 – HurkNburkS