我的头衔可能毫无意义,但我会尽力解释它。所以,基本上,我有一个从Firebase获取数据的UITableView。它有一个监听器,任何时候在该树上更改值,它都会更新tableview。问题是,我把它放在viewDidLoad中。 (这似乎是最有意义的)。比如说,如果用户转到设置屏幕(一个单独的VC),然后返回,它会重新重新加载tableview。有几个用户抱怨说,当他们回到主VC时加载tableview需要很长时间,我很好奇我是否可以将数据保存在那个vc上,所以它是永久的,直到我的监听器检测到数据库发生了变化。不确定这是否有意义 - 但基本上我希望tableview加载数据的唯一时间是初始加载,当我的后端更改数据时。并非每次调用viewDidLoad。
TL; DR: 如何使tableview加载数据一次,即使切换视图控制器也保持数据
答案 0 :(得分:3)
viewDidLoad
仅被称为一次。您正在使用 segue 从设置viewController返回到tableViewController。 segue 总是实例化一个新的destinationViewController。唯一的例外是特殊的 unwind segue ,它返回到之前实例化的viewController。
因此,使用展开segue 返回tableViewController,您的数据仍然存在,viewDidLoad
将不会被调用。