ここにコードを入力します。実際にボタンであるカスタムUIViewを追加したUITableViewCellがあります。カスタムUIViewをプログラムで追加し、その.tag = 4を設定しました。ボタンを描画してタグを設定するコードは、cellForRowAtIndexPathで実行されています。UITableViewCellのカスタムUIViewへのポインタは、0を返します。
イベントが発生したという通知を受け取る関数があります。この関数では、ボタンのテキストを変更できるように、UITableViewCellのボタンへのポインタを取得しようとしていますが、 viewWithTagプロパティは0として返され続けます。
アイデア?
これは、ボタンがコードに追加する方法です。
CustomBadge *customBadge1 = [CustomBadge customBadgeWithString:[NSString stringWithFormat:@"%d", [plugin items]]<br>withStringColor:[UIColor whiteColor]
withInsetColor:[UIColor redColor]
withBadgeFrame:YES
withBadgeFrameColor:[UIColor whiteColor]
withScale:1.0
withShining:YES];
[customBadge1 setFrame:CGRectMake(cell.frame.size.width - 80, 10, 30, 25)];
customBadge1.tag = 4;
[cell addSubview:customBadge1];
は、その後、デリゲートの機能で、これは私がボタンにポインタを取得しようとしています方法です:
CustomBadge* itemBadge = (CustomBadge*) [[[pluginTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]] contentView] viewWithTag:4];
すべてのサブビューをforeachし、.tagを確認することができます。別のオプションは、オブジェクトへのポインタを常に持つようにシングルトンを作ることです。 3番目のオプションは、私たちがあなたを助けるためにここにいくつかのコードを投稿することです。 – Melvin
ありがとうメルビン。私はコードを投稿しようとしていましたが、私はそれを私のMacに持っていません。シングルトンは良い考えです! –