objective-c - 如何从当前类中实例化的另一个类调用方法

标签 objective-c ios class methods

我的屏幕上有一些这样的 View

__________________
|          _____  |
|          |    | | //viewX is a video screen
|          |    | | 
| viewX    | vY | | //viewY is a custom uiview i created.
|          |____| | //it contains a method which i would like to call that toggles
|_________________| //the hidden property of this view. and when it hides, a little
|                 | //button is replaced no the top right corner on top of viewX
| viewZ           | //the video layer
|                 |
|_________________| //viewZ is a view containing many square views - thumbnails.

我的问题是,我不知道如何注册触摸事件,以便无论用户触摸哪个 View ,它都能识别任何触摸事件。atm 我正在处理其中每个 View 的触摸事件。所以一切正常...

但是我想做的是,当用户点击屏幕上除 viewY 之外的任何其他位置时,viewY 应该通过调用 viewY 类中的该方法来消失。

此 viewY 类已实例化,并且没有附加 xib 文件。 uiview 是在 viewY 类中以编程方式创建的。 viewY 行为的整个类在 viewX(视频 View )中实例化。

我的老板说添加代表......虽然我现在知道如何做到这一点......有什么帮助吗?

无论如何,我是否可以让它变得非常简单,并且无论我从哪个类调用,都可以说“删除 View ”?

我也看到其他人通过使用这些时髦的箭头 -> ... <- 等来实现这一点。尽管我不确定这是否是我需要的或如何实现这样的事情。

啊,我认为我让我的问题变得相当复杂,但我真的想让它成为一个简单的问题,并且知道它可以通过一种简单的方式完成!

最佳答案

不会打电话

[viewY hideThisViewAndShowLittleButton];

做正确的工作吗?如果你想删除 viewY 那么你可以调用:

[viewY removeFromSuperview];

为了从 viewZ 访问 viewY,假设 viewZ 可以访问 viewX,您可以定义viewX 中返回给您 viewY 的方法。类似于(在 viewX 的实现文件中:

- (UIView*)viewY {
   return <viewX_knows_which_value_to_return>;
}

对于viewX_knows_which_value_to_return,假设viewY是唯一的 subview ,您可以这样做:

[self.view.subviews lastObject];

(注意:我在这里假设 viewX 实际上是一个 View Controller ,而不是 UIView)。

关于objective-c - 如何从当前类中实例化的另一个类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11331715/

相关文章:

ios - UITableView 重复 Firebase 数据

objective-c - 简单的 bool 测试不起作用

iphone - 选择器没有已知的实例方法

ios - 检测我的 Controller 是否显示为弹出窗口

iphone - 检查 iphone 进程之间的 Internet 连接

javascript - Mootools 类 protected 处理程序?

parsing - 使用 Simple HTML DOM Parser 查找堆叠的 div 类

Java类成员变量

objective-c - 在用 classFromString 实例化的类中调用方法?

ios - 在 XMPPFramework 和 Swift 2 中未调用 didReceiveInvitation()