【问题标题】:Opening new view from TableViewController从 TableViewController 打开新视图
【发布时间】:2015-08-12 08:13:34
【问题描述】:

我有一个包含图像和一些文本的表格视图。这个想法是打开一个带有特定图像和文本的新视图,当用户单击表格视图中的实例时。

我正在考虑通过在表格视图中覆盖单元格的按钮来解决这个问题,但感觉应该有一个更简单的内置解决方案,比如 onCellClick(Any sender) 函数,但我还没有找到它。请帮忙?

【问题讨论】:

    标签: ios tableview segue viewcontroller tableviewcell


    【解决方案1】:

    是的,有一个简单的解决方案,那就是使用 UITableViewDelegate 方法didSelectRowAtIndexPath

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        NSString *cellText = cell.textLabel.text;
        UIImage *image = cell.imageView.image;
    
       // here create a new view controller and send these details to your new view controller.
       UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; //Main = your storyboard name
       DisplayDataViewController *displayDataViewController = [storyboard instantiateViewControllerWithIdentifier:@"displayDataViewController"];
      //set data in new view controller before pushing that on top of your navigation controller
      displayDataViewController.imageName = image;
     displayDataViewController.displayStr = cellText;
       [self.navigationController pushViewController:displayDataViewController animated:NO];
    }
    

    【讨论】:

    • 甜蜜 - 谢谢!我知道有一些东西:P。我试试这个!
    • 顺便说一句,我应该在那之后添加一个segue以将其指向正确的视图吗?
    • 您不需要任何转场。您可以简单地启动所需的视图控制器并使用 pushViewController 方法推送它。但是,这假设您的 tableView 控制器嵌入在导航控制器中,如果您要使用 segue,您无论如何都需要它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    相关资源
    最近更新 更多