Ios 使用UITableView填充UITabBar

Ios 使用UITableView填充UITabBar,ios,swift,uitableview,uitabbar,Ios,Swift,Uitableview,Uitabbar,我正在将单视图应用程序转换为基于选项卡的应用程序。我已经完成了大部分布局,所以我现在正在尝试连接所有组件,我一直在试图找出如何做两件事: 当我从我的UITableView中选择奖金时,我希望它打开我的第二个选项卡,其中包含所选行的信息。我不知道该怎么做 如果直接转到其他选项卡之一,我希望它只显示UITableView中第一个可见行的详细信息。我不知道如何设置这样一个默认值 我不确定您需要查看上面的代码,但我使用的是Xcode 9和Swift 4。我在谷歌上搜索了和,答案要么都是针对Objecti

我正在将单视图应用程序转换为基于选项卡的应用程序。我已经完成了大部分布局,所以我现在正在尝试连接所有组件,我一直在试图找出如何做两件事:

  • 当我从我的
    UITableView
    中选择奖金时,我希望它打开我的第二个选项卡,其中包含所选行的信息。我不知道该怎么做

  • 如果直接转到其他选项卡之一,我希望它只显示
    UITableView
    中第一个可见行的详细信息。我不知道如何设置这样一个默认值

  • 我不确定您需要查看上面的代码,但我使用的是Xcode 9和Swift 4。我在谷歌上搜索了和,答案要么都是针对Objective-C的,要么是关于
    UITableView
    模糊了最后一行
    UITableView
    数据(这不是我的问题)


    编辑:通过更改我的
    prepare(for segue)
    ,然后通过界面生成器,将segue从UITableView删除到选项卡的viewController,我似乎已经让它工作了一半。但是,这仍然不会点亮UITabBar中的相应选项卡。此外,它仍然包装在原始导航控制器中。这让我可以前后移动,但不是目的。当我尝试移除导航控制器时,我不得不使用“Show”或“Modal”类型的segue,它覆盖了UITabBar,并且无法返回细节视图。我想使用UITabBar来提供导航控制器用来处理的来回信息,这样我就可以获得屏幕顶部的空间。

    最简单的方法可能是在第二个选项卡的视图控制器中注册通知中心观察员。每当您有项目要显示时,只需从第一个选项卡的视图控制器触发通知,将需要显示的对象附加到通知。

    听上去,您不需要选项卡视图来满足该要求。其基本导航视图(或分割视图控制器)。但是如果您真的想使用tab bar,只需使用一些全局类(singleton可能很简单,在Swift中)来保留数据源(数组或字典),并将所选行保留为该类中全局可访问的参数,在显示每个视图时,使用viewWillAppear方法进行检查并显示详细信息原始版本的应用程序使用了带有UITableView的导航控制器、包含UIScrollView以保存所有数据的详细视图,然后是设置视图。它很实用,但有点难看。新的设计理念是在第一个选项卡上显示奖金列表,然后第二个选项卡将捕获奖金(拍照),第三个选项卡将显示奖金信息,第四个选项卡将显示设置。为了达到我现在的位置,我将现有的导航控制器嵌入到选项卡视图控制器中。并且已经开始将细节视图分为两部分(捕获和信息)。我要让我的新手在这里高举旗帜,承认我不知道“注册通知中心观察员”是什么意思。这个链接看起来像是我开始的正确路径吗?我进一步研究了一下,其中一条是“假设您有一个视图控制器a和一个视图控制器B。当B显示在屏幕上时,您想将一些数据从a传递到B。您使用通知中心吗?不!”这似乎正是我想要做的。我真的只希望UITableView中的“cellForRowAt”触发ViewController B并显示与所选“cellForRowAt”相关的信息。@DJFriar right。。。但您也尝试使用UITabBar显示多个ViewController,这些ViewController通常会永久分配一次,因此,您无法在每次点击ViewController a的单元格时轻松地重新实例化一个新的ViewController。如果您对自己的问题有更好的解决方案,请随意分享!)