2014-03-27 115 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