将UITableView添加到已显示另一个UITableView的UIViewController

时间:2015-03-09 07:49:06

标签: ios objective-c iphone uitableview

我正在构建一个应用程序,列出用户当前位置周围的火车站。在选择车站时,应用程序应列出在那里运行的列车的详细信息。但是,我不想导航到新的View控制器,而是想在同一原始视图控制器中的View中设置动画,该视图具有不同的UITableView。但是当我尝试这样做时,第一个UITableView(列出工作站的那个)显示在第二个视图中。我可以在同一个UIViewController中加载两个不同的UITableView吗? 注意: - 不要使用swift

4 个答案:

答案 0 :(得分:0)

您必须为tableviews设置标记,并在tableview delegatedatasource方法中使用此标记来填充数据

答案 1 :(得分:0)

我遇到了同样的问题。创建一个TableView并创建两个不同的dataSource(最好将它放在一个单独的文件中)。因此,当您需要更改数据时,只需设置另一个dataSource并重新加载数据。

答案 2 :(得分:0)

首先

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

然后你必须根据你的tableView

设置你的行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{


    if (tableView == self.tableView1){
        //Return the count you want inside self.tableView1
    }

    else if (tableView == self.tableView2){
        //Return the count you want inside self.tableView2
    }
    else{
        return 0;
    }
}

最后在你的cellForRowAtIndexPath里面根据你的TableView设置你的表值。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
           if (tableView == self.tableView1){
              static NSString *CellIdentifier = @"Cell";
              //reference the cells to the right tables
UITableViewCell *cell = [self.tableView1 dequeueReusableCellWithIdentifier: CellIdentifier forIndexPath:indexPath];
         }

    else if (tableView == self.tableView2){
               static NSString *CellIdentifier2 = @"Cell2";
               UITableViewCell *cell2 = [self.tableView2 dequeueReusableCellWithIdentifier: CellIdentifier2 forIndexPath:indexPath];
         }
    else{
        return 0;
         }
    }

将您的第二个tableView作为子视图添加到self.view

答案 3 :(得分:0)

创建两个tableViews出口

 @IBOutlet weak var imgTableView: UITableView!
     @IBOutlet weak var commentTableView: UITableView!

现在在这里使用带有if条件的两个不同的tableviews来为它们分配不同的数据,

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if tableView == imgTableView {
            return Array1.count
        }
        else if tableView == commentTableView {
            return Array2.count
        }
        return 1
    }
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        if tableView == imgTableView {
            var cell : ProductTableViewCell? = tableView.dequeueReusableCellWithIdentifier("cell") as? ProductTableViewCell;
            var data : NSString = Array1.objectAtIndex(indexPath.row) as NSString;
            cell?.configureCell(data)
            return cell!
        }
        else if tableView == commentTableView {
            var cell : CommentTableViewCell = tableView.dequeueReusableCellWithIdentifier("cell") as CommentTableViewCell
            var data : NSDictionary = Array2.objectAtIndex(indexPath.row) as NSDictionary;
            cell.configureCell(data, cellType: CommonCellType.Products)
            return cell
        }
        return tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
    }