在 RelationshipSegue 之后调用 ViewController 中的函数

Call function in ViewController after RelationshipSegue

我在 UITabbarController 中嵌入了多个 UIViewController。 这些由关系 Segues 连接。

起点,VC1 最初加载数据,然后处理到 "detail" 视图。 每当我更改选项卡并返回 VC1 时,应用程序都会卡住,因为未调用 viewDidLoad

有没有办法在每次 VC1 被跳转到时触发一个函数?

the application gets stuck, as viewDidLoad is not called

应用程序没有卡住。它工作得很好。 viewDidLoad 在视图控制器被 创建 并且 加载 其视图时被调用。这只会在视图控制器的生命周期中发生一次。当您离开视图控制器并 返回 时,它仍然存在(即它不是从头开始创建的),因此自然 viewDidLoad 不会被调用。

如果您的目标是了解标签栏控制器正在切换到 VC1 的事实,请为标签栏控制器提供委托并实施 tabBarController(_:didSelect:) 或类似的。

更好的是,配置一些东西,这样就不需要这样做了。如果两个视图控制器都访问了公共数据,那么构建事物以便视图控制器将新数据 up 发送到数据控制器并且数据控制器广播更改消息 down 到所有需要知道这个的视图控制器。