ios - 在另一个 View 上设置 setNeedsDisplay

标签 ios view

我有一个用于“设置 View ”的 Controller ,用户可以在其中更改我的 MyView View 中所绘制内容的某些属性。但是,我不知道如何在 MyView 而不是我的 SettingsView 上调用 setNeedsDisplay。

MyView 是一个 UIView,它有自己的 Controller MyViewController。

在此 View 中,我正在绘制一种具有不同颜色的矩形。在 SettingsViewController 中,我更改了一个参数,该参数影响在 MyView 中绘制的矩形类型。然而,要做到这一点,用户必须(他们在不同的选项卡上)切换 View ,并执行一些操作以便调用 setNeedsDisplay。我正在尝试从 SettingsViewController 调用 setNeedsDisplay,但我不能执行 self.view setNeedsDisplay,因为它会在 MyView 上调用 setNeedsDisplay。这样更有意义吗?

最佳答案

您只需在要重绘的 View 上调用setNeedsDisplay。因此,如果您在 SettingsViewController 中,则需要 MyViewController 的句柄。您提到您在 TabBarController 中,因此您可以通过它访问 View 。例如(假设 MyViewController 是第一个选项卡,而您在另一个选项卡中的 SettingsViewController 中):

[[self.tabBarController.viewControllers[0] view] setNeedsDisplay]

关于ios - 在另一个 View 上设置 setNeedsDisplay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466724/

相关文章:

ios - 切换标签时如何将UITabbarItem的viewcontroller设置为默认viewcontroller?

java - 使用约束布局针对不同的屏幕尺寸进行设计

android - android 中的 setBackgroundDrawable

sql - 将两个不相关的 View 合并为一个 View

iphone - 将 Interface Builder 中创建的 View 添加到以编程方式创建的 View 中 - 可以吗?

php - 拉维 5.1 : How to share a collection in all views?

iphone - 从头开始构建标签栏 View Controller

iOS释放内存问题

ios - UILabel 没有出现在我的应用程序中

ios - SwiftUI在NavigationLink中隐藏箭头