【问题标题】:Going into a second table view when i click on a table view cell of a first table view?当我单击第一个表视图的表视图单元格时进入第二个表视图?
【发布时间】:2015-07-17 14:33:46
【问题描述】:

您好,我正在开发一个标准的主从应用程序。

当您在 xcode 中创建主从应用程序时(我的意思是它在创建新项目时提出的那个),xcode 会创建一个导航控制器、一个表格视图和一个详细视图,这是您单击 uitableview 时的默认行为单元格是去细节视图。 我想转而使用另一个表格视图(当然我已经在情节提要中创建了)。我的目的是根据我在第一个表格视图上单击的内容(单击的单元格)显示过滤值列表。

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

但是当我在模拟器中点击一个表格视图单元格时,点击的单元格变成灰色并且什么都没有发生

当我单击第一个表格视图单元格时,如何使第二个 过滤 表格视图出现? 我该怎么做才能做到这一点?

附言。我是 iOS 编程、objective-c 和 cocoa touch 框架的初学者。我 xcode 标记,因为我想知道可以从情节提要中(以图形方式)完成我需要做的事情。

【问题讨论】:

    标签: ios objective-c xcode uitableview


    【解决方案1】:

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

    点击 segue 并在属性检查器中检查其名称,它应该是 showDetail ,在 MasterViewController.swift 文件中您应该查看此函数,在 prepareForSegue 中您可以设置过滤结果: 另外:setDetailItem:object应该改成另外一个函数,因为你创建的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];
        }
    }
    

    【讨论】:

    • 我已经这样做了,但问题不是过滤数据,问题是它什么都不做。我在 if 语句上放了一个断点,并且执行永远不会停止(就像它没有越过断点一样)。
    • 是在显示下一个场景还是卡在masterView中并且segue根本不起作用?
    • 卡在masterView中!唯一的问题是点击的单元格变成灰色。
    • 当你点击故事板中的segue时你有这个吗? dropbox.com/s/33bv1f6cux4431c/…
    • 如果您在应用程序运行时单击MasterView右上角的+,然后单击新添加的单元格:它将移动到您拥有的detailView。问题是,如果你不点击 + ,就没有单元格!如果你看到这个,请告诉我。我建议你从单视图应用程序开始这样做:)
    【解决方案2】:

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

    对此主题的 Apple 文档:Apple Doc - Navigating a Data Hierarchy with Table Views 一个好的答案在这里:https://stackoverflow.com/a/19806545/1195661

    【讨论】:

    • 感谢您链接相关文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2022-06-13
    • 2016-08-09
    • 1970-01-01
    相关资源
    最近更新 更多