如何使用按钮使用两个tableviews

时间:2014-10-29 13:38:04

标签: ios objective-c uitableview uipopovercontroller

我想使用两个表格视图,例如...... ..

我使用的是popover控制器

第一个tableview位于弹出控制器中 在popover控制器我有两个按钮(添加注释按钮和剩余按钮) 当我点击剩余按钮时,我隐藏了第一个tableview并启用了第二个tableview

用于第二个tableview cellforrowatindexpath没有调用

仅针对它正在调用的第一个tableview,而不是调用第二个表视图

这里我的代码是......... ..

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{


    if (tableView==self.remainderTableView)//second Tbleview {

        static NSString *cellIdentifier=@"Celliden";
        UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
        if (cell==nil) {
           cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
     }

        cell.textLabel.text=@"hhh";
        return cell;

    }
    else if (tableView==self.NotesandRemainderTable)//first Tableview {

        static NSString *cellIdentifier = @"bookingCell";

   CustomTableViewSwipeCell *cell = (CustomTableViewSwipeCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

        NSString *note=[jsondata valueForKey:@"TeacherNotes"];

        NSLog(@"teacher notes %@",note);
        //    if (cell==nil) {
        //        cell=[[CustomTableViewSwipeCell alloc]init];
        //    }
        // Add utility buttons

        NSMutableArray *rightUtilityButtons = [NSMutableArray new];


        [rightUtilityButtons sw_addUtilityButtonWithColor:
         [UIColor colorWithRed:1.0f green:0.231f blue:0.188 alpha:1.0f]
                                                    title:@"Delete"];

        _SubjectLabel.text=AppDel.sub;
        NSLog(@"the date %@",AppDel.date);
        _DateLabel.text=_dateToDisplay;
        if (indexPath.section==0)
        {
            if (indexPath.row==0)
            {
                cell.Noteslabel.text=note;



            }


            return cell;

        }
        if (indexPath.section==1){

            cell.Noteslabel.text=[_notesArray objectAtIndex:indexPath.row];

            //NSLog(@"notes index %@",[notesArray objectAtIndex:indexPath.row]);
            cell.rightUtilityButtons = rightUtilityButtons;
            cell.delegate=self;
            return cell;


        }
    }
          //cell.rightUtilityButtons = rightUtilityButtons;
   return nil;

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView==self.NotesandRemainderTable) {
        if (section==0) {
            return 1;
        }

        else if (section==1) {

            if (leanerNots==nil || [leanerNots isEqual:[NSNull null]]) {
                return 0;
            }
            else{

                return [_notesArray count];
            }

        }

    }else{
        return 3;
    }
        return 0;
}

//这是我的剩余按钮代码......

 -(IBAction)addRemainderAction:(id)sender{
    self.lineLabel.hidden=NO;
    self.remainderTableView.hidden=NO;
    self.addButtonObj.hidden=NO;
    //self.remainderTableView.frame=CGRectMake(0, 62, 300, 321);

    //[self.view addSubview:self.remainderTableView];
    self.NotesandRemainderTable.hidden=YES;
    self.notesBtnObj.hidden=YES;
    self.remainderBtnObj.hidden=YES;
     _SubjectLabel.hidden=YES;

}

任何人都可以帮助解决这个问题......我是Xcode的新手

2 个答案:

答案 0 :(得分:0)

您是否设置了第二个tableview的数据源和委托?

例如在viewDidLoad中:

self.remainderTableView.datasource = self;
self.remainderTableView.delegate = self;

您可能希望在显示之前重新加载您的tableviews。为此,请将以下代码用于第二个tableview

[self.remainderTableView reloadData];

答案 1 :(得分:0)

从这段代码来看,您是否已为delegate个实例正确设置了dataSourceUITableView,这一点并不完全清楚。如果还没有,则永远不会调用这些委托方法。

无论如何,使用两个数据集而不是两个tableView可以更好地处理这种情况。以与现在相同的方式实施cellForRowAtIndexPath,除了根据tableView的值有条件地创建您的单元格,只需使用UIButton的值。当UITableViewsUITableViewDelegate方法允许您轻松地从不同的数据集中获取时,两个UITableViewDataSource似乎有点矫枉过正。