7

独自の.m、.h、および.xibファイルを使用してカスタムセルを作成しました。セルには、IBのxibに追加したUIButtonがあります。

このカスタムセルの.mのUIButtonからIBActionを受け取ることができますが、実際には、そのボタンの押下を、テーブル(およびカスタムセル)をホストしているメインビュー.mに転送し、そこでアクションを使用したいと思います。 。

私は過去4時間、これを行うためのさまざまな方法を試してきました-NSNotificationCenterを使用する必要がありますか?(私は通知をたくさん試しましたが、それを機能させることができず、私が頑張るべきかどうかわかりません)

4

5 に答える 5

9

セルの.hファイルでデリゲートを使用する必要があります。このように代表者を宣言する

@class MyCustomCell;
@protocol MyCustomCellDelegate
- (void) customCell:(MyCustomCell *)cell button1Pressed:(UIButton *)btn;
@end

次に、フィールドとプロパティを宣言します

@interface MyCustomCell:UItableViewCell {
    id<MyCustomCellDelegate> delegate;
}

@property (nonatomic, assign) id<MyCustomCellDelegate> delegate;

@end

.mファイル内

@synthesize delegate;

とボタン方式で

- (void) buttonPressed {
    if (delegate && [delegate respondToSelector:@selector(customCell: button1Pressed:)]) {
        [delegate customCell:self button1Pressed:button];
    }
}

ビューコントローラは、このようなプロトコルを採用する必要があります

.hファイル

#import "MyCustomCell.h"

@interface MyViewController:UIViewController <MyCustomCellDelegate>
.....
.....
@end

cellForRowの.mファイル:セルにプロパティデリゲートを追加する必要があるメソッド

cell.delegate = self;

最後に、プロトコルからメソッドを実装します

- (void) customCell:(MyCustomCell *)cell button1Pressed:(UIButton *)btn {

}

私の英語とコードでごめんなさい。XCODEなしで私のPCからそれを書きました

于 2012-05-11T19:42:30.093 に答える
0

カスタムセルのデリゲートを(@protocolを使用して)作成してみませんか。次に、メインビューを各セルのデリゲートとして指定し、アクションを適切に処理できます。

于 2012-05-11T17:52:05.533 に答える
0

テーブルビューを持つView Controllerのボタンにセレクターを追加したいだけかもしれません。

あなたの cellForIndexPath 関数で

[yourCell.button addTarget:self action:@selector(customActionPressed:) forControlEvents:UIControlEventTouchDown];

次に、「customActionPressed:(id) sender」メソッドでボタンの押下を処理します

    //Get the superview from this button which will be our cell
UITableViewCell *owningCell = (UITableViewCell*)[sender superview];

//From the cell get its index path.
NSIndexPath *pathToCell = [myTableView indexPathForCell:owningCell];

    //Do something with our path

リストされていない要因が他にない限り、これがより良い解決策になる可能性があります。

詳細を説明するチュートリアルがあります http://www.roostersoftstudios.com/2011/05/01/iphone-custom-button-within-a-uitableviewcell/

于 2012-05-11T17:49:42.773 に答える
0

デリゲートの使用をお勧めします。

于 2012-05-11T17:48:20.837 に答える