0

UITableView を自分のものとしてパッケージ化しようとしています。コードは次のとおりです。

@interface OPTableView : UIView<UITableViewDelegate,UITableViewDataSource>
{
    NSMutableArray *_dataSource;
    id<OPTableviewDelegate>_delegate;
}
@property(retain,nonatomic)id<OPTableviewDelegate>delegate;
@property(retain,nonatomic)NSMutableArray *dataSource;

.m:

@implementation OPTableView

@synthesize delegate=_delegate;
@synthesize dataSource=_dataSource;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        tableView=[[UITableView alloc] initWithFrame:frame];
        tableView.delegate=self;
        tableView.dataSource=self;
        _dataSource=[NSMutableArray array];
        [self addSubview:tableView];
        [tableView release];
    }
    return self;
}

#pragma table delegate

- (void)tableView:(UITableView *)tab didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}

OPTableView を作成すると、画面に表示されます。しかし、問題は、1 つのテーブルを選択したときにデリゲート メソッド :didSelectRowAtIndexPath が呼び出されないことですが、さらに悪いことに、それは故障します。

4

3 に答える 3

0

OPTableViewDelegate とは? テーブルのデリゲートは、UITableViewDelegate ではなく OPTableViewDelegate 型です。

于 2012-09-08T06:27:51.067 に答える
0

すべて、私は本当にばかげた間違いを犯しました。「initWithFrame」メソッドでは、コード:_dataSource=[NSMutableArray array]; 絶対に間違っています。

このコード「_dataSource=[NSMutableArray array];」を削除すると、すべてが機能します。

皆さんありがとう。

于 2012-09-09T05:57:13.683 に答える
0

セルの選択スタイルを none 以外の値に設定してみてください。また、テーブルに必要なすべてのデリゲート メッセージを実装する必要があることにも注意してください。実装しましたか?

于 2012-09-08T04:29:00.330 に答える