【发布时间】:2017-12-21 10:42:38
【问题描述】:
当一个视图被销毁(舞台关闭,另一个视图取而代之等)时,是否有任何方法会在控制器上被调用?也就是说,是否有对应的:
@FXML
private void initialize()
更新:我这样做的原因是我的应用程序正在接收来自 PubNub 的消息,然后这些消息需要中继到这些控制器,以便他们可以选择是对它们采取行动还是不是(它们是否这样做取决于内部控制器信息,例如视图的大小)。
我的计划是让这些控制器在全局列表中注册自己,并在销毁时取消注册。
【问题讨论】:
-
不,没有这样的方法。
-
我不这么认为......
-
真正的问题是“当某个 UI 部分不再可用时,为什么我应该使用该部分的控制器?”。 @Pablo - 你能回答这个问题吗?
-
目前还不清楚是否有一个很好的定义来“销毁”视图,无论如何它都可以用来触发这样的方法。这听起来像X-Y question。
-
这个用例很有意义。但是,最终,FX 工具包不会以任何方式管理控制器的生命周期,除了在某些情况下为您创建它们。因此,工具包无法知道您何时不再使用控制器。首先,如果一个窗口关闭,例如,工具包确实无法知道其中显示的 UI 是否是从 FXML 加载的,即使是这样,也无法确定您是否可能要再次显示该 UI。所以你真的只需要自己管理。