CellForRowAtIndexPath不被调用

我正在写一个应用程序的帽子有很多的意见,我用滑动视图库( ECSlidingViews )。 问题是当我用对象填充一个数组,填充tableView:cellForRowIndexPath:方法中的对象时,它确实呈现表中的数据,但是当我去其他视图,回来的数据消失,因为tableView:cellForRowIndexPath:不叫。 这里是代码:

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"begin of cellForRowAtIndexPath"); SchedualeCell *cell = (SchedualeCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell"]; Course *temp = [array objectAtIndex:indexPath.row]; cell.nameLb.text = temp.name; cell.hourLb.text = [NSString stringWithFormat:@"%d",temp.hour]; cell.startTimeLb.text = temp.startTime; cell.endTimeLb.text = temp.endTime; NSLog(@"End of cellForRowAtIndexPath"); return cell; } 

tableView:numberOfRowsInSection:numberOfSectionsInTableView:当我回到具有表视图的视图时被调用。

PS:视图是UIViewController ,里面有表格视图,在发布我的问题之前我search了所有的StackOverflow。

编辑:这是我设置委托和数据源的地方

 - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"Did Appear"); // Do any additional setup after loading the view. self.view.layer.shadowOpacity = 0.75f; self.view.layer.shadowRadius = 10.0f; self.view.layer.shadowColor= [UIColor blackColor].CGColor; if (![self.slidingViewController.underLeftViewController isKindOfClass:[MenuViewController class]]) { self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"]; } [self.view addGestureRecognizer:self.slidingViewController.panGesture]; if (array == nil) { array = [[NSMutableArray alloc]init]; } table.delegate = self; table.dataSource = self; [table reloadData]; } 

我确实在头文件中包含了委托和数据源

 @interface MainViewController : UIViewController<UITableViewDataSource , UITableViewDelegate,addDelegate> 

首先,它不是numberOfRowsAtSectionnumberOfTableView 。 它是numberOfSectionsInTableViewnumberOfRowsInSection

你可以做的事情:

1) NSLog你的numberOfRowsInSection 。 请注意,如果它是“0”,那么你的cellForRowAtIndexPath永远不会被调用。

2)如果你在一些UIView里使用你的UITableView那么你应该添加:

 [self.view addSubview:table]; 

3)不要忘记包括:

 @interface yourViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> 

一旦检查你ViewWillAppeartableview 。 有时,如果我们设置了框架, CellForRowAtIndexPath将不会调用。