2016-10-13 38 views
1

在我的代碼中,我必須將兩個參數傳遞給targetMethod printMethod,我可以將button.tag作爲一個參數傳遞,以及如何傳遞另一個參數?如何將兩個參數傳遞給iOS中的UIButtons目標方法?

請舉個例子。

我的代碼:

button.tag = indexPath.row; 
secondArgument = indexPath.section; 
[button addTarget:self action:@selector(printMethod:) forControlEvents:UIControlEventTouchUpInside]; 

-(IBAction)printMethod:(UIButton*)sender{ 
    NSLog(@"%d%d",sender.tag,//SecondArgument); 
} 
+1

你不能。你可以做的是子類UIButton,並給他屬性(indexPath,otherDataToShare)。 – Larme

+0

IBAction方法只接受一個參數;發件人 – Paulw11

+0

你的第二個參數是什麼? –

回答

1

如果你想在按鈕動作indexPath然後嘗試這樣的事情。

-(IBAction)printMethod:(UIButton*)sender{ 

    CGPoint point = [sender.superview convertPoint:sender.center toView:self.tableView]; 
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point]; 
    if (indexPath) { 
      NSLog(@"Section - %ld Row - %ld",deleteIndexPath.section, deleteIndexPath.row); 
    } 
} 
+0

但Arpit B Parekh的評論比你的回答更好,你甚至可以傳遞這些對象作爲參數; –

+1

@AMIamitekh我從來沒有嘗試過這種方法,所以不知道它。 –

1

只要繼承UIButton並添加該類要傳遞的參數屬性。

然後您可以通過該按鈕的實例來評估它。例如,

#import <UIKit/UIKit.h> 

@interface CustomFileCapturebutton : UIButton 

@property int maxNumberOfFilesAllow; 
@property NSString *fileType; 

@end 

然後創建CustomFileCapturebutton實例並創建行動類似,

-(void)captureClick : (CustomFileCapturebutton*)sender{ 

    // you can use your properties here like 



    NSLog (@"%@",sender.fileType); 

} 

您可以設置在那個時候屬性,當您addtarget按鈕一樣,

CustomFileCapturebutton *btn = [[CustomFileCapturebutton alloc]init]; 

    btn.frame = yourFrame; 

    [btn addTarget:self action:@selector(captureClick:) forControlEvents:UIControlEventTouchUpInside]; 

    btn.fileType = @"png"; // set properties here 
1

嘗試使用通第二個參數accessibilityIdentifier到按鈕

button.accessibilityIdentifier = [NSString stringWithFormat:@"%d",indexPath.section)]; 
相關問題