【问题标题】:How to call a method from another class that's been instantiated within the current class如何从当前类中实例化的另一个类调用方法
【发布时间】:2012-07-05 02:42:34
【问题描述】:

我的屏幕有几个这样的视图

__________________
|          _____  |
|          |    | | //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.

我的问题是,我不知道如何注册触摸事件,以便无论用户触摸屏幕的哪个视图都可以识别任何触摸事件。atm 我正在处理其中每个视图的触摸事件。所以一切都很好......

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

这个 viewY 类被实例化并且没有附加到它的 xib 文件。 uiview 是在 viewY 类中以编程方式创建的。 viewY 行为的整个类在 viewX 中实例化 - 视频视图。

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

不管我从哪个类调用,我是否可以让它变得非常简单并且能够说 REMOVE VIEW?

我还看到其他人通过使用这些时髦的箭头来实现这一点 -> ...

啊,我想我把我的问题弄得很复杂,但我的意思是它是一个简单的问题,并且知道它可以通过简单的方式完成!

【问题讨论】:

    标签: objective-c ios class methods


    【解决方案1】:

    不会打电话

    [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是唯一的子视图,你可以这样做:

    [self.view.subviews lastObject];
    

    (注意:我在这里假设 viewX 实际上是一个视图控制器,而不是 UIView)。

    【讨论】:

    • 是的,如果您在类中调用它,但是从不同的类(例如从 viewZ)调用它就行不通了....
    • @你在 ViewController 中初始化了 uiview 吗?
    • 是的。它是那个类中的一个 uiview init'd .. 因为它是我创建的一个动态 uiview,在它上面添加了很多按钮等所有程序化的。然后是在不同的类中打开和关闭 uiview 的方法......我不知道如何访问已经初始化的其他类中的相同方法
    • 请看我的编辑...如果你为你的类提供接口声明,我可以更详细。
    【解决方案2】:

    这是一个好方法。 您甚至可以通过隐藏或添加 alpha 来做到这一点。

    vY.hidden = YES;
    

    找回来

    vY.hidden = NO;
    

    【讨论】:

      猜你喜欢
      • 2015-06-10
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      相关资源
      最近更新 更多