gpt4 book ai didi

swift 2 : Update TableView from Separate Tab Bar Controller

转载 作者:行者123 更新时间:2023-11-30 13:15:15 24 4
gpt4 key购买 nike

我正在使用 XCode 7.3 来使用 Swift 2.0。

我目前有 2-Navigation-View-Controllers(NAV1 & NAV2) 。每个都有自己单独的 TableView Controller (TAB1 和 TAB2)以及相应的表(TABLE1 和 TABLE2)。

TABLE1 有一个基于数据的单独子表 (TABLE1A...TABLE1Z)。

第二个表(TABLE2)可以通过共享的单例类来更改 table1 及其子表(TABLE1 和 TABLE1A...TABLE1Z)共享的数据。 2-Navigation-View-Controllers(NAV1 和 NAV2)都是选项卡栏 Controller (TAB_MAIN)的模态。 singleton 类可以通过任何 Controller 访问,并且是一种数据共享的方式。

TAB_MAIN

-NAV1

--TABLE1 (SINGLETON)

----TABLE1A (SINGELTON)

----... [potential for multiple sub-modals/tables](SINGLETON)

----TABLE1Z (SINGLETON)

-NAV2

--TABLE2 (SINGLETON)

我想要的是以下内容:

  1. 对 TABLE2 中的单例数据进行更改,以立即更新 TABLE1 及其所有子模态中的数据。注意:目前这是通过函数调用更新单例类中的数据来工作的;即objectClass.changeData()

  2. 数据更新后,通过选择 TABLE2 中的特定行,我想:(a) 将当前选定的选项卡更改为第一个选项卡 View Controller
    Assets 净值1。请注意,目前这可以通过以下方式进行: tabBarController?.selectedIndex = 1(b) 更新附加到第一个选项卡 (NAV1) 的父导航 Controller 的所有表的表中显示的数据。(c) 展开到第一个选项卡 (NAV1) 的第一个 tableView。

目前发生的情况是,NAV2->TABLE2 中的更改会更新数据,并将当前选定的选项卡更改为 NAV1 留下的任何 tableView ,而不更改数据。

只有转到所有子表(即 TABLE1A...TABLE1Z、TABLE1AA 等)的父表 (NAV1->TABLE1) 时,数据才会重置,然后选择 tableView并向下钻取,子表中的数据显示是否得到正确更新。

我想从第二个 NAV2 Controller 中“展开”到第一个 NAV1 Controller 最顶层的 tableView,或者,如果失败,则在从 NAV2 切换时自动更新信息-> TABLE2 到任何当前向下钻取的 NAV1->TABLEX。

最佳答案

尝试在 NAV2-Table2NSNotifcationCenter 中使用观察者。在viewDidLoad中添加观察者

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(Table2ViewController.updateTable(_:)), name:"NotificationUpdateTable2", object: nil)

然后在另一个 View Controller 中执行更新后使用postNotificationName调用更新。这将反射(reflect)表2中的变化

NSNotificationCenter.defaultCenter().postNotificationName("NotificationUpdateTable2", object: objectData)

记住添加注释以更容易跟踪更改,因为观察者可以在任何地方触发

关于 swift 2 : Update TableView from Separate Tab Bar Controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38299686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com