如何让某个UI只在某些视图控制器上显示?



我有一个UIProgressView,我希望在两个视图控制器上显示,a和B.我目前使用一个UITabBarController与4个视图控制器,这样我可以导航到任何四个从导航选项卡。问题是,我希望这个进度视图只显示在4个视图控制器中的2个。

我目前的方法是分别在A和B上构建相同的进度视图,但问题是,当我从A导航到B或反之亦然时,进度视图不会平滑地增加,而是以非常"跳跃"的方式更新,在更新到当前进度之前它会变为0。

在标签栏控制器中,我输入

self.updateProgressView(prog)

在完成处理程序中,因为我需要在计算程序之前等待数据。

在我的vc中,我做

VC.updateProgressView = {prog in 
progressBar.setProgress(prog)
}

标签栏控制器管理独立的持久化视图控制器。每个视图控制器都有自己的视图层次结构。当你切换选项卡时,选项卡栏控制器切换到显示该选项卡的视图控制器和它的视图。

不能在多个选项卡上显示相同的进度视图。您需要为您希望显示的每个选项卡设置单独的进度视图。

你能做的是在每个标签的视图控制器上实现viewWillAppear方法,将进度视图设置为当前的进度值,这样在它显示的时候,它已经有了期望的进度值。你需要一些方法来在视图控制器之间传递进度值。

最新更新