一个具有多个视图的视图控制器

时间:2014-10-11 08:33:19

标签: ios views viewcontroller

我已经困惑了很长时间。假设我有一个视图控制器,当我点击一些按钮时,当前视图切换到另一个视图,我可以在故事板中的一个视图控制器中配置不同视图的布局吗?或者是否有一种标准方法可以在一个视图控制器中处理多个视图?非常感谢您的回复!

3 个答案:

答案 0 :(得分:0)

假设您的意思是UIView而不是UIViewController(需要使用ContainerView),那么您可以像这样使用视图.hidden属性:

    func switchViews ()
{
      if view1.hidden == true  && view2.hidden == false 
      {
        view1.hidden = false
        view2.hidden = true
      } 
      else 
      {
        view1.hidden = true
        view2.hidden = false
      }
}

您只需像平常一样配置视图

答案 1 :(得分:0)

这是一段代码: -

//You need to create a array of view's which you want to show along with a unique tag value:-

UIView *view1 = [[UIView alloc] init];
view1.tag = 1;
UIView *view2 = [[UIView alloc] init];
view2.tag = 2;
UIView *view3 = [[UIView alloc] init];
view3.tag = 3;

NSArray *viewArray = [[NSArray alloc] initWithObjects:view1,view2,view3, nil];

//In below method, you could pass the tag value of view which you want to show as argument.
- (void)addSubviewWithTag:(NSInteger)tag {

  for (int i=0;i <viewArray.count;i++){    //This loop will check and remove all view from self(parent view) which are not be to present or added.
    if([viewArray objectAtIndex:i].tag != tag){
        [[viewArray objectAtIndex:i] removeFromSuperview];
    }
    else{
        [self.view addSubview:[viewArray objectAtIndex:i]];  //The one which match's will be added as subview to self(parent view)
    }
  }
}  

答案 2 :(得分:0)

我建议你去Apple标准版面指南。

1)您可以使用UIScrollView来管理其中的子视图。并将scrollview添加到视图控制器

2)当您想要管理复杂视图时,UITableViewUICollectionView都比其他人更好。像删除,重新排序和处理子视图事件。在这里,您可以获得单元格索引和后续子视图详细信息