IOS:从不同 View 的类更改 View 的正确方法是什么?

标签 ios swift uiviewcontroller uiimageview swift2

我设置了一个UIImageView子类(在swift中),这样我就可以访问touchesBegan/touchesMoved/touchesEnded。

当调用其中一个方法时,我需要更改不同的已加载 View 的属性。

在我看来,我现在需要访问事件 View Controller 才能设置另一个 View 的属性。有没有更好的方法来解决这个问题(例如在 View Controller 中调用事件方法)?

请注意,我是 iOS 新手,对事件系统还不是很熟悉,因为我发现的大多数信息都是用 Objective C 而不是 Swift 编写的。 (别担心,我正在查看 Apple 的文档。)

另外,不,我无法将 UIImageView 更改为 UIButton。即使我更改为 UIButton,我也需要访问各个 touchesBegan 等方法,同样的问题仍然存在。

最佳答案

如果我的理解正确,您需要从 UIImageVIew 引用 UIViewController 来推送/呈现新的 UIViewController。您有几个选择:

  1. 从 ImageView 触发 NSNotification 并在 View Controller 上有一个事件监听器。

  2. 在 ImageView 上创建一个委托(delegate),该委托(delegate)在 View Controller 上触发选择器。

  3. 在 ImageView 上保留对 View Controller 的引用,并从具有该引用的 ImageView 中推送一个新的 View Controller 。

  4. 在应用程序窗口的 rootViewController 上以模态方式呈现一个新的 View Controller 。

关于IOS:从不同 View 的类更改 View 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928031/

相关文章:

ios - 后退按钮后隐藏的导航栏

android - 是否有可能为 android + iOS 制作一个实际上只是一个网络应用程序的应用程序?

ios - watch 套件 App : Terminated due to memory error

iphone - 为什么 "numberOrRowsInSection"在 "viewDidLoad"中途被调用?

ios - 带有 SubView 的 tableView 的容器 View 或 UIViewController

ios - 更新单个 TableView 单元格标签

ios - 如何将 MTLTexture 转换为 CVpixelBuffer 以写入 AVAssetWriter?

ios - 无法从 weather-api 获取 json。 iOS

Swift:在 Firebase 数据库中搜索特定值并查找所有关联数据

ios - 在 Storyboard 中定义的模拟 UIViewController