2012-08-29 79 views
0

我在運行時創建一個視圖並添加一個UITableView作爲它的子視圖。 我也定義了tableview的委託給自己。UITableView代表沒有被調用

但仍是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]; 
+0

嘗試[表reloadData]; – Neo

+0

我猜測是因爲'UITableView'的'datasource'更重要,它是必需的。嘗試'table.datasource = self.',不要忘記添加方法'cellForRowAtIndexPath'和'numberOfRowsInSection' – iNoob

+0

不幸的是,這也是:( – WakkaoW

回答

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; 
0

首先嚐試檢查上的Xcode通過代碼完成的委託方法,如果你得到適當的代表到類, xcode會自動檢測你的委託方法。

我猜你可能不會宣佈

@interface SimpleTableView : UITableView <UITableViewDelegate, UITableViewDataSource> 
2

假設你添加的UITableViewDelegate,UITableViewDataSource.H文件...我想你在的.m文件錯過了這個代碼

table.dataSource = self; 
相關問題