我在 storybord 和 UISegmentedControl 中有一个 tableView 来用不同的数据和不同的设计填充上面提到的表格。我的问题是 numberOfRowsInSection 方法在我切换 UISegmentedControl 时没有反应。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(self.segment.selectedSegmentIndex==0)
{
return [self.items count];
NSLog(@"Nominals: %d",self.items.count);
}
if(self.segment.selectedSegmentIndex==1)
{
return [self.coinageArr count];
NSLog(@"Coinage: %d",self.coinageArr.count);
}
//return 0; Complains about no return.
}
好吧,NSLogs 在导航时不起作用。在这种情况下如何返回 NSInteger ?
提前谢谢。
编辑:对于shannoga
段 Controller 切换方法:
-(IBAction)segmentValueChaged:(id)sender
{
switch (self.segment.selectedSegmentIndex)
{
case 0:
{
DBAccess *access=[[DBAccess alloc]init];
self.items=[access returnNominals:self.entityID nk:fromPeriod];
[access closeDataBase];
self.tableView.hidden=NO;
[self.tableView reloadData];
break;
}
case 1:
{
DBAccess *access=[[DBAccess alloc]init];
self.coinageArr=[access returnCoinage:fromPeriod period:self.entityID];
self.tableView.hidden=NO;
[self.tableView reloadData];
break;
}
}
}
最佳答案
将其更改为:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(self.segment.selectedSegmentIndex==0)
{
NSLog(@"Nominals: %d",self.items.count);
return [self.items count];
}
if(self.segment.selectedSegmentIndex==1)
{
NSLog(@"Coinage: %d",self.coinageArr.count);
return [self.coinageArr count];
}
//return 0; Complains about no return.
}
else
. [tableview reloadData]
在您的 UISegmentedControl 更改上。那么改self.items
就好了valueChanged
中的数组方法并离开 numberOfRowsInSection
没有改变,所以它看起来像这样: - (void)valueChanged:(id)sender
{
if(self.segment.selectedSegmentIndex==0)
{
self.items = what ever
}else{
self.items = what ever
}
[tableview reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [self.items count];
}
祝你好运
关于iOS 5 : numberOfRowsInSection doesn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11974699/