我可以将UIView设置为容器视图

时间:2013-02-04 20:14:04

标签: uiviewcontroller uisplitviewcontroller ipad

我正在尝试创建一个有效2个视图的iPad视图。左侧视图将是菜单/登录区域,右侧视图将根据左侧选择的菜单项来显示内容。

我添加了2个容器视图,我可以轻松创建左侧菜单。但是,我无法告诉右侧在视图控制器之间切换。如何将UIViewController分配给容器视图?当选择菜单项时,我需要能够使用不同的视图控制器切换出右侧。

这甚至可能吗?我不想使用Split View Controller,因为右侧是UITable,我不想要UITable。

如果我不在正确的轨道上,有人能指出我正确的方向吗?

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

以下是一个示例代码,用于更新两个单独按钮的容器视图内容。

内容是两个不同的 UIViewControllers

注意:在将一个视图添加到 ContinerView 之前,请不要忘记清除容器视图以管理内存。

.h文件

MyViewController1 * myViewController1;
MyViewController2 * myViewController2;

@property (nonatomic, strong) IBOutlet UIView *containerView;

.m文件

// Button-1
- (IBAction)button1_TouchUpInside:(UIButton *)sender {

  for (UIView *view in [containerView subviews]) {

    [view removeFromSuperview];
  }

  [button1 setSelected:YES];

  myViewController1 = nil;

  myViewController1 = [[MyViewController1 alloc]
                           initWithNibName:@"MyViewController1"
                           bundle:[NSBundle mainBundle]];

  [self.containerView addSubView:myViewController1.view];
}

- (IBAction)button2_TouchUpInside:(UIButton *)sender {

  for (UIView *view in [containerView subviews]) {

    [view removeFromSuperview];
  }

  [button2 setSelected:YES];

  myViewController2 = nil;

  myViewController2 = [[MyViewController1 alloc]
                           initWithNibName:@"MyViewController1"
                           bundle:[NSBundle mainBundle]];

  [self.containerView addSubView:myViewController2.view];
}

希望这有助于解决您的问题。