0

我正在使用故事板在表格视图应用程序中工作。我想在选择时执行事件

表格视图中的单元格。所以当我选择一个单元格元素时,下一个视图(detailview)应该是

打开以显示更多详细信息。

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
 {  
    self.dv = [[Detail alloc]initWithNibName:@"Detail" bundle:nil];


    dv.dic = [self.arr1 objectAtIndex:indexPath.row];


    [self.view addSubview:dv.view];
}
4

3 回答 3

1

而是试试这个:

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{  
       self.dv = [[Detail alloc]initWithNibName:@"Detail" bundle:nil];


        dv.dic = [self.arr1 objectAtIndex:indexPath.row];


       [self presentViewController:dv animated:YES completion:nil];

}

如果你想解雇使用这个代码:

[self dismissViewControllerAnimated:YES completion:nil];
于 2013-08-07T08:28:39.410 回答
1

您应该使用导航控制器,并在选择行时将详细视图推入其中。

创建导航控制器:选择表格视图控制器并进入编辑器/嵌入/导航控制器。

然后做:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{
    // dv = [Detail alloc] initWithNibName:@"Detail" bundle:nil];
    dv = [storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
    dv.dic = [self.arr1 objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:dv];
}

注释行是如果您不使用情节提要。

或者您可以按照 Abdullah 的建议进行操作,但使用

[self dismissViewControllerAnimated:YES completion:nil];
于 2013-08-07T08:29:57.663 回答
0

在情节提要中,从视图底部的 viewcontroller 图标中拖动一个 segue 到下一个要进行 segue 的 viewcontroller。确保您的视图嵌入在导航控制器中。按出现在 tableviewcontroller 和目标视图控制器之间的箭头,并确保使用 segue 标识符对其进行标记。然后在您描述的方法中确保他们使用 if 语句选择了正确的索引路径并写入

[self performSegueWithIdentifier:@"theNameOfYourIdentifierFromTheStoryboard"];

话虽如此,我认为您应该研究大量信息。

阅读以下内容:http: //www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/作为开始。

于 2013-08-07T08:30:54.427 回答