当我点击第一个表格视图的表格视图单元格时,进入第二个表格视图?

时间:2015-07-17 14:33:46

标签: ios objective-c xcode uitableview

您好我正在制作标准的Master-Detail Applicaton。

在xcode中创建主 - 详细信息应用程序时(我的意思是它在创建新项目时提出的应用程序),xcode创建导航控制器,表视图和详细视图,单击uitableview时的默认行为单元格是进入详细视图。 我希望转而使用另一个表格视图(当然我已经在故事板中创建了这个视图)。我的目的是根据我在第一个表格视图上点击的(单击的单元格)显示过滤值的列​​表。

所以我尝试从图形故事板中完成此操作,我尝试按住Ctrl键将箭头从第一个标准表视图拖动到第二个新视图。选择手动segue = show。 我甚至删除了原来的"将第一个标准表视图链接到详细视图(xcode提出的视图)的箭头。

但是当我点击模拟器中的表格视图单元格时,单击的单元格变为灰色,没有任何反复发生

当我点击第一个'时,如何显示第二个过滤的表格视图?表格查看单元格? 我该怎么做才能做到这一点?

聚苯乙烯。我是iOS编程,Objective-c和cocoa触摸框架的初学者。我是xcode标签,因为我想知道在故事板中可以做些什么(以图形方式)来完成我需要做的事情。

2 个答案:

答案 0 :(得分:1)

这是非常基本的。简而言之:在切换到新的TableViewController之前,根据单击的单元格,在prepareForSegue中使用过滤后的数据填充它。

Apple doc to this subject:Apple Doc - Navigating a Data Hierarchy with Table Views  这里有一个很好的答案:https://stackoverflow.com/a/19806545/1195661

答案 1 :(得分:1)

如果你想展示一个"细节"单击" master"时的表格视图表格视图单元格可以使用ctrl-drag执行此操作。从主视图的原型单元格(选择它)开始到故事板中的第二个表视图,然后选择show detail选项以创建segue。

单击segue并在属性检查器中检查其名称,它应该是showDetail,就像在MasterViewController.swift文件中你应该看看这个函数,在prepareForSegue中你可以设置过滤结果: 另外:setDetailItem:对象应该更改为另一个函数,因为你创建的tableView场景不具有detailItem属性,你可以在h文件中添加一个属性并从prepareForSegue

设置它
#pragma mark - Segues

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"showDetail"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        NSDate *object = self.objects[indexPath.row];
        [[segue destinationViewController] setDetailItem:object];
    }
}