Ios self.tableView为零,与调用numberOfSectionsInTableView的tableView不同
我有一个带UITableView的UIViewController。当视图加载时,Ios self.tableView为零,与调用numberOfSectionsInTableView的tableView不同,ios,xcode,uitableview,ios6,uiviewcontroller,Ios,Xcode,Uitableview,Ios6,Uiviewcontroller,我有一个带UITableView的UIViewController。当视图加载时,numberOfSectionsInTableView:被调用,我希望此时我的self.numberOfSections变量为0。然后,当我在加载数据的完成块中调用[self.tableView reloadData]时,它不会调用任何UITableViewDataSource方法 经过一些调试,我发现即使在视图加载时正确调用了numberOfSectionsInTableView:,如果我打印传递到方法中的tab
numberOfSectionsInTableView:
被调用,我希望此时我的self.numberOfSections
变量为0。然后,当我在加载数据的完成块中调用[self.tableView reloadData]
时,它不会调用任何UITableViewDataSource方法
经过一些调试,我发现即使在视图加载时正确调用了numberOfSectionsInTableView:
,如果我打印传递到方法中的tableView
,它也不同于nilself.tableView
我几乎可以肯定,我的所有插座都连接正确(我遵循了我在其他所有表视图中使用的相同模式)。因此,我不确定是什么导致了这种情况,如果我的self.tableView
实例为零,那么哪个表视图甚至被传递到numberOfSectionsInTableView:
下面的屏幕截图显示了numberOfSectionsInTableView:
中的断点以及实例的打印输出。
英寸高:
@interface YourViewController: UIViewController <UITableViewDataSource,UITableViewDelegate>
tableView代表:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return numberofRowsYouWant;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// make your cell.....
return cell;
}
如果你没有错过这些步骤,它应该能正常工作!
当然,如果您使用IB,不要忘记将tableView连接到IBOutlet
例如,您可以使用如下方法重新加载tableView:
-(void) showData
{
[YourTableView reloadData];
[YourTableView setNeedsDisplay];
}
我很感激你的回答,但这并不能满足我的需要。我的节数是可变的,我使用的是interface builder,因此我不需要以编程方式设置dataSource和委托,因为它们在IB中连接。在哪里设置此变量?在另一个viewController中?或者用相同的方法?用另一种方法,但这与我的IBOutlet self.tableView为零这一事实无关。尝试清理项目(shift+cmd+k),并从模拟器中删除,重新启动模拟器和xcode,或mac。有时Xcode变得哑了,并设置@property(弱的,非原子的)ibuitableview*TableView;不是很强,因为这是一个很好的决定。不知道为什么我以前没有重置。为了以防万一,我在清理时也会删除DerivedData。谢谢如何设置tableView属性?你能给我一个连接的截图吗。
-(void) showData
{
[YourTableView reloadData];
[YourTableView setNeedsDisplay];
}