私は12345678910111213のような数字を持っており、あるメソッド(cellForRow)から別のメソッド(buttonアクションメソッド)に渡す必要があります。私が使用した最も簡単な方法は、ボタンタグを渡すことです。この場合は不可能です(?)。私はそれのためのプロパティを作成することもできますが、カプセル化についてはどうですか?私は本当にそのようなことをするための正しい(そして、好ましくは単純な)方法を知りたい。前もって感謝します!ビッグ・ナンバーを使って作業する
0
A
答えて
1
実際にはUIButton
に値を添付することができます。あなたがIDとしてボタンでアクションを受信したとき、他の側では
static char kMyObject;
objc_setAssociatedObject(myButton, &kMyObject, [NSNumber numberWithInt:myInt], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
:この中
- (void)myAction:(id)sender
{
UIButton *myButton = (UIButton*)sender;
NSNumber *number=objec_getAssociatedOject(myButton,&kMyObject);
}
0
あなたが合格したいとあなたがボタンへの参照を持っている価値を持っている場合整数タグでは、どのようなbigintを表していても、クラス/構造体にポインタ(32ビットアドレスの場合)を格納できます。例えば
:
UIButton *button = [UIButton ...];
button.tag = (int)[[MyBigInt alloc] initWithString:@"12131312312312312"];
後:サアドが言ったようにあなたがタグとしてそれを渡すことはできません
MyBigInt *bigInt = (MyBigInt *)button.tag;
...
[bigInt release];
0
。ここでNSDecimal numbersを使用できます。 @Saadは精度を失うので、doubleを使用することはできません。
0
ここではいくつかの前提を設定します
- アクションを含むUIButtonは、UITableViewCellにあります。
- すべてのデータ(つまり、すべてのデータを含む配列)の基礎となるソースがあります。
- テーブルビューに簡単にアクセスできます。
まず、あなたがボタンを含むセルを取得する必要があります。
UITableViewCell *cell = nil;
for (UIView *view = sender; view; view = view.superview) {
if ([view isKindOfClass:[UITableViewCell class]]) {
cell = (UITableViewCell *)view;
break;
}
}
次へ]を、あなたはそのセルのためのindexRowを取得する必要があります:
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
最後に、あなたがする必要がありますあなたのデータにアクセスする:
ModelClass modelObject* obj = [self.data objectAtIndex:indexPath.row];
ここでは、あなたのモデルにする必要があります。
+0
申し訳ありませんが、それほど単純ではありませんが、わかる限り、これはテーブルビューのセルからモデルにアクセスする適切な方法です。最初の部分を行うためのメソッド-cellSuperviewを持つUIViewのカテゴリを作成しました。私はその後、コントローラ内でメソッド-objectForSenderを作成したので、各アクションのコードを書く必要はありません。 –
関連する問題
- 1. アーランとビッグ・ナンバー
- 2. ブートストラップを使って作業する
- 3. System.ComponentModelを使って作業する
- 4. マルチストーリーボードを使って作業する
- 5. MaterialCalendarViewを使って作業する
- 6. SWRevealViewControllerを使って作業する
- 7. NSTimerを使って作業する
- 8. iphoneカメラを使って作業する
- 9. フォームを使って作業する
- 10. テーブルを使って作業する
- 11. リモートリポジトリを使って作業する
- 12. CSVファイルを使って作業する
- 13. Python Regexを使って作業する
- 14. time.process_time()を使って作業する
- 15. KRL&Ajaxを使って作業する
- 16. スイフト - グラデーションを使って作業する
- 17. iOSロケーションマネージャーを使って作業する
- 18. JSONを使って作業する
- 19. cronjobsを使って作業する
- 20. MATLAB - タイムスタンプを使って作業する
- 21. BgrA32を使って作業する
- 22. localstorageを使って作業する
- 23. Magento Layoutsを使って作業する
- 24. Twistedを使って作業する
- 25. JS:スライダを使って作業する
- 26. Djangoフォームを使って作業する
- 27. プロキシを使って作業する
- 28. HTML5キャンバスを使って作業する
- 29. データベースを使って作業する
- 30. Rancher + NFSを使って作業する
数字はセルごとに異なる場合があります。 – Stas
@Zaphありがとう... – Peres
@Stas私はちょうどあなたが値を渡すことができます説明しています。あなたの細胞を実際にどのように移植し、どのように数字を整理するかはあなた次第です... – Peres