-1
         UIButton *btnUserImage = [UIButton buttonWithType:UIButtonTypeCustom];
        [btnUserImage setFrame:CGRectMake(5, 5, 80, 60)];
        [btnUserImage setBackgroundColor:[UIColor clearColor]];
        [btnUserImage setTag:indexPath.row];
        [btnUserImage addTarget:self action:@selector(btnUser_clicked:) forControlEvents:UIControlEventTouchUpInside];
        [cell.contentView addSubview:btnUserImage];

こんにちは、実装しようとしているこの方法がありますが、インデックス path.row が別の .m ファイルにあるため、btnuserimage タグが機能しないという問題があります。一番下のコードは、上記のコードに実装しようとしているものです。別のコントローラーで上記のメソッドを機能させる必要があります。何をすべきかについての提案やヒント。基本的に私が求めているのは、上記のコードが機能するように、下のコードを別のView Controllerに実装する必要があるということです。

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:   (NSIndexPath     *)indexPath {
4

2 に答える 2

0

SharedClassを作成し、そこから必要なすべての値を渡すことができます。または、グローバル変数を作成して、両方のクラスで使用できます。

ただし、sharedClassを使用することをお勧めします。

また、将来の参考のために、何かが動的に変更された場合は、通知に進むことができます。

于 2012-11-17T03:36:01.060 に答える
0

次のように、「1 つの」View Controller に public メソッドを追加できます。そして、それを「別の」View Controllerと呼んでください。

// in OneViewController a public method
- (void)addButtonWithTag:(NSInteger)tag
{
    [btnUserImage setTag:tag];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:   (NSIndexPath     *)indexPath {
    ...
    [oneViewController addButtonWithTag:indexPath.row];
    ...
}
于 2012-11-17T03:42:31.867 に答える