【问题标题】:How to load the view controller inside container using button?如何使用按钮在容器内加载视图控制器?
【发布时间】:2015-10-15 01:34:38
【问题描述】:

这是我在单击按钮时一直在使用的代码,我的视图控制器中没有发生任何操作。

 - (IBAction)controlleraction:(id)sender {

    ChildViewController *child=[[ChildViewController alloc]init];

   rootviewController *firstview= [[rootviewControllerone alloc]init];
    [self addChildViewController:child];
    child.view.frame = self.container.frame;//container is a container view (uiview)
    [self.container addSubview:child.view];
    [firstview removeFromParentViewController];
    [child didMoveToParentViewController:self];
         NSLog(@"working");


}

我已根据建议更新了我的代码,但此代码不适用于我。

当我单击按钮时,容器视图控制器必须加载到我的容器视图中。

【问题讨论】:

  • 请添加您尝试过的代码。并说明您在其中遇到了什么问题。
  • 浏览一些教程,这太基础了,你应该在第一个教程中学习它。这是问答网站,不是教程。打开例如 raywenderlich 网站,他们有很棒的教程。您不是在问如何呈现不同的控制器,而是在要求整个解决方案。此外,最好在发布之前重新阅读问题,因为很难理解您的语言。
  • 我现在尝试并编辑了我的代码,希望各位朋友帮助我找出问题。
  • @Kishorekumar:什么是 ContainerViewController ?您是否在主视图控制器中添加了任何容器视图控制器?您正在将视图控制器的视图添加到 self.view。还有你面临的问题是什么?
  • 容器视图是一个普通的视图控制器,在我的根视图控制器中我有容器,如果我点击按钮容器视图控制器必须加载到容器中。

标签: ios objective-c uiview uiviewcontroller uicontainerview


【解决方案1】:

要在按钮单击上加载新的视图控制器,请执行以下操作:

将您的第一个控制器连接到第二个、push 或模态 segue,并在故事板右侧面板的 Attribute 部分下为 segue 命名。

然后在您的实现文件中,编写以下代码

- (IBAction)controlleraction:(id)sender
{
   [self performSegueWithIdentifier:@"SegueIdentifier" sender:nil];
}

This link一定对你有帮助。

编辑:在按钮单击时调用其他两个控制器:

1) 移除按钮与VC的连接。

2) 将所有三个控制器(具有黄色、紫色和黑色背景的 VC)与第一个控制器(具有按钮的 VC)连接起来

3) 将 ID 设置为 3 个不同的 segue,Segue Identifier(在故事板右侧面板的属性部分下)。

4) 然后以编程方式在按钮单击时调用不同的 VC:

- (IBAction)controlleraction:(id)sender
{
   if (CONDITION FOR 1ST VC)
      [self performSegueWithIdentifier:@"SegueIdentifier1" sender:nil];
   else if (CONDITION FOR 2nd VC)
      [self performSegueWithIdentifier:@"SegueIdentifier2" sender:nil];
   else if (CONDITION FOR 3rd VC)
      [self performSegueWithIdentifier:@"SegueIdentifier3" sender:nil];
}

【讨论】:

  • 我的按钮动作发生在第一个视图控制器中我必须如何调用第三个视图控制器
  • 然后我必须将 viewcontroler 加载到容器中
  • 好的,所以你想调用带有紫色和黑色背景的 ViewController。正确的?如果是这样,那么我会更新我的答案。
  • S bro 正确我想调用那个 vc,然后我必须将 vc 加载到容器视图
  • @Kishorekumar 如果此答案解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
猜你喜欢
  • 2011-09-17
  • 2020-10-12
  • 2015-12-02
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 2017-09-17
  • 1970-01-01
相关资源
最近更新 更多