您好我正在制作标准的Master-Detail Applicaton。
在xcode中创建主 - 详细信息应用程序时(我的意思是它在创建新项目时提出的应用程序),xcode创建导航控制器,表视图和详细视图,单击uitableview时的默认行为单元格是进入详细视图。 我希望转而使用另一个表格视图(当然我已经在故事板中创建了这个视图)。我的目的是根据我在第一个表格视图上点击的(单击的单元格)显示过滤值的列表。
所以我尝试从图形故事板中完成此操作,我尝试按住Ctrl键将箭头从第一个标准表视图拖动到第二个新视图。选择手动segue = show。 我甚至删除了原来的"将第一个标准表视图链接到详细视图(xcode提出的视图)的箭头。
但是当我点击模拟器中的表格视图单元格时,单击的单元格变为灰色,没有任何反复发生。
当我点击第一个'时,如何显示第二个过滤的表格视图?表格查看单元格? 我该怎么做才能做到这一点?
聚苯乙烯。我是iOS编程,Objective-c和cocoa触摸框架的初学者。我是xcode标签,因为我想知道在故事板中可以做些什么(以图形方式)来完成我需要做的事情。
答案 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];
}
}