我希望能够允许不同视图之间的通信。
我有两个较小的视图叠在一个大视图上,类似于iOS的视频播放器,但也有一些不同。当我点击大视图时,我想切换视图的出现和隐藏。我已经有了一个协议,所有的视图都符合该协议。我想将这些视图添加到另一个名为HideViewsService
的类中,该类具有一个NSArray
属性。我可以强制使用这个HideViewsService
类并添加视图的类只添加符合这个协议的视图吗?或者只添加UIViews
?
此外,我想调用视图上的一个方法,我知道所有视图都有它,但我不知道如何通过编译器。这是我的-hideAllViews
方法:
-(void)hideAllViews
{
for(int i=0; i<self.viewArray.count; i++)
{
id obj = [self.viewArray objectAtIndex:i];
if([obj isKindOfClass:[UIView class]] == false)
{
return;
}
UIView *view = (UIView *)obj;
if([view respondsToSelector:@selector(hide)])
{
[view hide]; // the compiler obviously doesn't like this
}
}
}
谢谢!我还在学习中,如果有更好的方法,请告诉我(不仅是更容易,而是更好)。
NSArray
的线程。 - Mike D