0

実行時にビューを作成し、そのサブビューとしてUITableViewを追加しています。また、テーブルビューのデリゲートをselfに定義しました。

しかし、それでもUITableViewデリゲートは呼び出されていません

@interface cViewController:UIViewController

RouteShowView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
[RouteShowView setBackgroundColor:[UIColor blueColor]];

table = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, 320, 410) style:UITableViewStylePlain];
table.delegate = self;
UIButton * Go = [UIButton buttonWithType:UIButtonTypeRoundedRect];
Go.frame = CGRectMake(0, 4, 70, 42);
[Go setTitle:@"<< BACK" forState:UIControlStateNormal];
[Go addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
[Go setBackgroundColor:[UIColor blackColor]];

[RouteShowView addSubview:table];
[RouteShowView addSubview:Go];

[self.view addSubview:RouteShowView]; 
4

3 に答える 3

2

.hファイルにUITableViewDelegate、UITableViewDataSourceを追加したとすると.... mファイルでこのコードを見逃したと思います

table.dataSource = self;
于 2012-08-29T07:20:06.897 に答える
1

足りないものは

//.h file
@interface SimpleTableView : UITableView <UITableViewDelegate, UITableViewDataSource>
{
}
@end

// in .m file
table = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, 320, 410) style:UITableViewStylePlain];

// set delegated object
table. delegate = self;

// set source for data
table.dataSource = self;

そして、UITableViewのドキュメントで定義されている@requiredプロトコルを実装します

@protocol UITableViewDataSource<NSObject>

@required

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
于 2012-08-29T08:26:56.300 に答える
0

まず、xcodeのコード補完によってデリゲートメソッドをチェックしてみてください。クラスに適切なデリゲートを取得した場合、xcodeはデリゲートメソッドを自動的に検出します。

私はあなたが宣言されていないかもしれないと思います

@interface SimpleTableView : UITableView <UITableViewDelegate, UITableViewDataSource>
于 2012-08-29T05:36:47.070 に答える