我有一个3页的基于页面的应用程序,在每个页面上我都有UIView
作为子视图,这个UIView
是从UIViewController
加载的。在最后一页上,我有UICollectionView
包含不同的项目,当我触摸UICollectionCell
时,我想更改子视图。
这是我的故事板:
橙色UIView
加载了UIViewController
s(带有xib文件)的视图
viewWillAppear:
上的DataViewController.m
:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.dataLabel.text = [self.dataObject description];
if([self.dataLabel.text isEqualToString:@"View1"])
[mainView addSubview: view1.view];
else if([self.dataLabel.text isEqualToString:@"View2"])
[mainView addSubview: view2.view];
else if([self.dataLabel.text isEqualToString:@"View3"]){
[mainView addSubview: view3.view];
}
}
触摸UICollectionCell
的方法:
- (void)collectionView:(UICollectionView *)collectionView
didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
// Change the view
}
答案 0 :(得分:0)
尝试这样它可以帮助你带来想要的视图的子视图,
[self.view bringSubviewToFront:view];
答案 1 :(得分:0)
您可以将UICollectionView上的事件委托给DataViewController,以便更轻松地处理这些事件。
1-识别带有标签的UICollectionView
以便轻松检索:
//Supposed that your UICollectionView has been declared as an IBOutlet in your .h
yourCollectionView.tag = 1;
2-将<UICollectionViewDelegate>
添加到DataViewController.h
以处理UICollectionView
个事件,
3-在您将UICollectionView
代理人添加到DataViewController
后立即mainView
设置//Replace 1 with the NSInteger you chose
[[[mainView subviews] lastObject] viewWithTag:1] setDelegate:self];
代理人
didSelectItemAtIndexPath
4-处理DataViewController
上的{{1}}以更改您的观点。