我在UITabbarController
中嵌入了多个UIViewController
。 这些通过关系 Segue 连接。
起点VC1
最初加载数据,然后处理为"详细信息"视图。 每当我更改选项卡并返回VC1
时,应用程序都会卡住,因为没有调用viewDidLoad
。
有没有办法在每次VC1
被触发时触发一个函数?
应用程序卡住,因为不调用 viewDidLoad
应用程序未卡住。它正在完美地工作。 创建视图控制器并加载其视图时调用viewDidLoad
。这在视图控制器的生命周期中只发生一次。当您离开视图控制器并返回它时,它仍然存在(即它不是从头开始创建的(,因此自然不会调用viewDidLoad
。
如果您的目标是了解选项卡栏控制器正在切换到 VC1 的事实,请为选项卡栏控制器提供一个委托并实现 tabBarController(_:didSelect:( 或类似内容。
更好的是,配置内容,以便无需执行此操作。如果两个视图控制器都访问了公共数据,则构建事物,以便视图控制器将新数据发送到数据控制器,数据控制器将更改新闻广播给需要知道这一点的所有视图控制器。