如何在一个UIviewcontroller

时间:2016-07-09 12:03:37

标签: ios objective-c uitableview

我创建了一个页面,我需要使用两个表视图来添加动态选项。问题是只有一个表显示其数据而另一个表不显示。我完全糊涂了我做错的地方。

我的观点的屏幕截图。

enter image description here

enter image description here

下面我正在添加我的代码 -

@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];
    }

}

我也尝试使用下面的代码将前三个选项导航到他们的特定屏幕。但是代码对我不起作用。任何人都可以清除我的怀疑吗?

2 个答案:

答案 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;
}

}