我创建了一个页面,我需要使用两个表视图来添加动态选项。问题是只有一个表显示其数据而另一个表不显示。我完全糊涂了我做错的地方。
我的观点的屏幕截图。
下面我正在添加我的代码 -
@interface FlirtMatchViewController ()
{
UILabel *headerTitle;
NSArray *tableData;
NSArray *arrimages;
NSArray *tableData1;
NSArray *arrimages1;
}
@end
@implementation FlirtMatchViewController
- (void)viewDidLoad {
[super viewDidLoad];
tableData = [NSArray arrayWithObjects:@"TattooSingles",@"Eyecatcher",@"Tattoo Toplist",@"Radar",@"Flirt Chat",@"Free VIP Membership",@"VIP Membership",@"Invite Friends",nil];
arrimages = [NSArray arrayWithObjects:@"tatto_single@2x.png",@"eye_catcher.png",@"tatto_toplist.png",@"radar.png",@"Flirt_chat.png",@"free_vip.png",@"vip_membership_navigation.png",@"add-friend1.png", nil];
tableData1 = [NSArray arrayWithObjects:@"TattooSingles",@"Eyecatcher",@"Tattoo Toplist",@"Radar",@"Flirt Chat",@"Free VIP Membership",@"VIP Membership",@"Invite Friends",nil];
arrimages1 = [NSArray arrayWithObjects:@"tatto_single@2x.png",@"eye_catcher.png",@"tatto_toplist.png",@"radar.png",@"Flirt_chat.png",@"free_vip.png",@"vip_membership_navigation.png",@"add-friend1.png", nil];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if(tableView==_leftTableView)
{
return [tableData count];
}
else {
return [tableData1 count];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier2 = @"Cell2";
static NSString *CellIdentifier1 = @"Cell1";
if(tableView==self.leftTableView)
{
static NSString *CellIdentifier1 = @"Cell1";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] ;
}
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
return cell;
}
else
{
static NSString *CellIdentifier2 = @"Cell2";
UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell1 == nil)
{
cell1= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2] ;
}
cell1.textLabel.text = [tableData1 objectAtIndex:indexPath.row];
return cell1;
}
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
TattooSinglesScreen *obj=[self.storyboard instantiateViewControllerWithIdentifier:@"TattooSinglesScreen"];
EyecatcherScreen *obj1=[self.storyboard instantiateViewControllerWithIdentifier:@"EyecatcherScreen"];
TattooToplist *obj2=[self.storyboard instantiateViewControllerWithIdentifier:@"TattooToplist"];
int i=indexPath.row;
if(i==0){
[self.navigationController pushViewController:obj animated:NO];
}
else if (i==1) {
[self.navigationController pushViewController:obj1 animated:NO];
}
else if (i==2) {
[self.navigationController pushViewController:obj2 animated:NO];
}
}
我也尝试使用下面的代码将前三个选项导航到他们的特定屏幕。但是代码对我不起作用。任何人都可以清除我的怀疑吗?
答案 0 :(得分:1)
Anbu建议使用什么,虽然我可以建议你创建单独的类来处理每个UITableView的数据源和委托,然后简单地为每个tableview分配数据源和委托给你的新类。这将更清晰,可能有助于解决您的逻辑问题。
希望这有帮助,如果您有任何疑问,请发表评论,祝您好运。
答案 1 :(得分:0)
喜欢
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self. leftTableView)
{
return [tableData count];
}
if (tableView == self. rightTableView)
{
return [tableData1 count];
}
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
if(tableView==self.leftTableView)
{
static NSString *CellIdentifier1 = @"Cell1";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1] ;
}
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
return cell;
}
if (tableView == self._rightTableView)
{
static NSString *CellIdentifier2 = @"Cell2";
UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell1 == nil)
{
cell1= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2] ;
}
cell1.textLabel.text = [tableData1 objectAtIndex:indexPath.row];
return cell1;
}
}