【问题标题】:What is right way to display a detail view?显示详细视图的正确方法是什么?
【发布时间】:2015-02-22 06:08:58
【问题描述】:

我是 iOS 新手,具有 PHP/MYSQL 背景,我正在尝试显示表格的详细视图。

我创建了一个简单的 NSMutableArray 来保存我们在 Web 编程中所说的一些记录。我能够在表格视图中显示这些并使其正常工作,因此当您触摸一行时,您会转到详细信息页面。

但是我完全困惑于您如何使用 MVC 模型获取详细视图以显示数据,并且在网络上搜索但无济于事,试图找到一个如何做到这一点的简单示例。我尝试了许多教程并观看了许多视频,但无法掌握其中的窍门,因为我不了解其中的原理。我想为点击的记录提取数据,但不知道将其传递给详细视图。

NSMutableArray 在 tableview 控制器中创建。为了遵循 MVC,我还创建了一个模型类,其中列出了与数组中保存的字段名称相对应的一些属性。

我不知道如何在详细视图中显示它。

这和为 Segue 做准备有关吗?但是,这似乎违反了 MVC,因为详细信息页面的数据实际上是在表格视图页面中,即不同的控制器。

我急需一些指导......

我不知道要尝试什么代码,因为没有一个对我有用。我只需要一个基本示例来说明如何完成这个看似简单的例行任务。

【问题讨论】:

    标签: ios xcode uitableview detailview


    【解决方案1】:

    在 DetailViewController 中创建一个属性,然后在 TableViewController 的“didSelectRowAtIndexPath”中设置该属性,如下所示

    DetailViewController *dvc = [DetailViewController alloc] init]; //Can be instantiated via the storyboard too.
    

    DetailViewController *dvc = (DetailViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewControllerIdentifier"]; // Do not forget to set the identifier in the storyboard for the viewcontroller.
    

    那么,

    dvc.recordsArray = self.recordsArray //setting the recordsArray property of the DetailViewController object to point to the TableViewController recordsArray
    
    [self.navigationController pushViewController:DVC animated:YES];
    
    [self.TableViewController deselectRowAtIndexPath:indexPath animated:YES];
    

    【讨论】:

    • 这不使用教程似乎都推荐的prepareforsegue。这是不必要的吗?
    • 如果您通过故事板或使用 performSegueWithIdentifier [self performSegueWithIdentifier:@"SegueIdentifier" sender:self] 的代码执行转场导航,则可以使用 prepareForSegue; .当您在选择特定元素时推送视图控制器时,您也可以执行上述操作。
    猜你喜欢
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    相关资源
    最近更新 更多