2011-06-06 3 views
1

button.tagプロパティは、私は、セルのアクセサリービュー..myコードでダウンロードボタンを追加してい

button = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *image = [UIImage imageNamed:@"download.png"]; 
[button setImage:image forState:UIControlStateNormal]; 
//[button setTitle:@"Download" forState:UIControlStateNormal]; 
[button setFrame: CGRectMake(110.0f, 3.0f, 80.0f, 30.0f)]; 
[button addTarget:self action:@selector(someAction) forControlEvents:UIControlEventTouchUpInside]; 
button.tag = indexPath.row; 
cell.accessoryView = button; 

あるのUITableView細胞で働いていないと私は、セルのインデックスパスからファイル名を渡したいが、これはありますそれは最初の行のみ を渡しているindexpath.row私はbutton.tag =を渡さない場合は理由のbutton.tag = indexpath.row

を助けてください...それは最初の行だけを取る

- (void)someAction { 

    [self.activityIndicator startAnimating]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *file = [NSString stringWithFormat:@"/%@",[metaArray objectAtIndex:button.tag]]; 
    NSLog(@"%@", button.tag); 
    NSString *path = [NSString stringWithFormat:@"%@/Downloaded Data/%@",[paths objectAtIndex:0],file]; 

// NSString *loadFileName = [NSString stringWithFormat:@"/%@/%@",Name,file]; 
    [self.restClient loadFile:file intoPath:path]; 
    NSLog(@"Downloaded:%@",file); 
} 

このクラッシュを動作していません

答えて

2

tagは整数プロパティです。 NSLogのオブジェクトとして印刷しようとしています。 NSLog(@"%d", button.tag);

実際には、個々のダウンロードボタンを各セルに割り当てる必要があります。 UITableViewの

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *image = [UIImage imageNamed:@"download.png"]; 
[button setImage:image forState:UIControlStateNormal]; 
//[button setTitle:@"Download" forState:UIControlStateNormal]; 
[button setFrame: CGRectMake(110.0f, 3.0f, 80.0f, 30.0f)]; 
[button addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventTouchUpInside]; 
button.tag = indexPath.row; 
cell.accessoryView = button; 

そして、このようなあなたのsomeAction方法を定義し、

- (void)someAction:(id)sender { 

    UIButton *button = (UIButton *)sender; 
    NSLog(@"%d", button.tag); 
    [self.activityIndicator startAnimating]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *file = [NSString stringWithFormat:@"/%@",[metaArray objectAtIndex:button.tag]]; 
    NSString *path = [NSString stringWithFormat:@"%@/Downloaded Data/%@",[paths objectAtIndex:0], file]; 
    //NSString *loadFileName = [NSString stringWithFormat:@"/%@/%@",Name,file]; 
    [self.restClient loadFile:file intoPath:path]; 
    NSLog(@"Downloaded:%@", file); 
} 
+0

OK ..しかし、使用して設定されたタグがいけません%dは私の問題を解決しません – DeviPhone26

+0

私のアプリがクラッシュしています[dropbox someAction]インスタンスに送られたセレクタが認識されません – DeviPhone26

+1

こんにちは、b " - (void)someAction:(id)送信者"〜 "(IBAction)someAction:(id)送信者" –

1

行が再利用可能で、行インデックスの代わりに私たちはこの方法

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{ 
    id rowObject = [myArray objectAtIndex:indexPath.row]; 
} 
+0

しかし、私はアクセサリビューを使用しています....アクセサリボタンのメソッドはうまくいきます..私はボタンを使用してアクセサリビューを使用した理由 – DeviPhone26

関連する問題