Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何从另一个';已在当前类中实例化_Objective C_Ios_Class_Methods - Fatal编程技术网

Objective c 如何从另一个';已在当前类中实例化

Objective c 如何从另一个';已在当前类中实例化,objective-c,ios,class,methods,Objective C,Ios,Class,Methods,我的屏幕上有几个这样的视图 __________________ | _____ | | | | | //viewX is a video screen | | | | | viewX | vY | | //viewY is a custom uiview i created. | |____| | //it contains a method which i would like to call th

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

__________________
|          _____  |
|          |    | | //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 im处理其内部每个视图的触摸事件。所以一切都很好

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

这个viewY类是实例化的,没有附加到它的xib文件。uiview是在viewY类中以编程方式创建的。viewY behviour的整个类在viewX(视频视图)中实例化

我的老板说增加代表。。虽然我现在知道怎么做了。。。有什么帮助吗

不管我从哪个类调用,我都可以简单地说“移除视图”吗

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

[viewY hideThisViewAndShowLittleButton];
做正确的工作?如果要删除viewY,可以调用:

[viewY removeFromSuperview];
为了从
viewZ
访问
viewY
,如果
viewZ
有权访问
viewX
,您可以在
viewX
中定义返回给您的
viewY
方法。类似于(在
viewX
的实现文件中):

- (UIView*)viewY {
   return <viewX_knows_which_value_to_return>;
}
(注意:我在这里假设viewX实际上是一个视图控制器,而不是UIView)。

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

vY.hidden = YES;
把它拿回来

vY.hidden = NO;

是的,如果你在类内调用它,这是可行的,但是从另一个类(例如从viewZ)调用它,那么它就不起作用了…@你在ViewController中初始化uiview了吗?是的。它是该类中的uiview初始化。因为它是我创建的动态uiview,在它上面添加了很多按钮,等等,所有这些都是编程的。然后是一个打开和关闭uiview的方法但是在另一个类中…我不知道如何访问另一个类中已经存在的相同方法。请参见我的编辑…如果您为您的类提供接口声明,我可以更详细。
vY.hidden = NO;