【问题标题】:How does the ParentViewController display a ChildViewController?ParentViewController 如何显示 ChildViewController?
【发布时间】:2015-05-04 11:24:14
【问题描述】:

我创建了一个ChildViewControllers 数组,但是如何使ParentViewController 显示ChildViewController(arrayChildViewController[0]) 之一?

在父视图控制器中:

[self addChildViewController:arrayChildViewController[0]]; [arrayChildViewController[0] didMoveToParentViewController:self];

[self addChildViewController:arrayChildViewController[1]]; [arrayChildViewController[1] didMoveToParentViewController:self];

[self addChildViewController:arrayChildViewController[2]]; [arrayChildViewController[2] didMoveToParentViewController:self];

在arrayChildViewController[1]中:(arrayChildViewController是一个navigationController,我添加了一个UIImagePickerController,这里是它的委托方法)

 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
  //[picker dismissViewControllerAnimated:YES completion:nil];        
  [self.parentViewController dismissViewControllerAnimated:YES completion:nil];
  [self.parentViewController.childViewControllers objectAtIndex:1];
   }

parentViewController无法显示arrayChildViewController[1],变成arrayChildViewController[0]。希望我说清楚。

【问题讨论】:

  • 你在使用导航控制器吗?
  • @laura-wen 我已经发布了答案,请尝试一下。
  • @laura-wen 请重播。
  • 好的,等一下。非常感谢。
  • @laura-wen 请分享您的代码...

标签: ios objective-c


【解决方案1】:

你需要像这样添加它并将它移动到父视图控制器

[self addChildViewController:arrayChildViewController[0]];
[arrayChildViewController[0] didMoveToParentViewController:self];

【讨论】:

  • 我已经这样做了。对不起,我没有说清楚。我在 parentViewController 中添加了三个 childViewController,但是如何显示 arrayChildViewController[0]?谢谢。
  • @stefan salacity 代码的最后一行给出了错误。
  • 可能是一个错误,因为我是从头顶写的。感谢您的提醒。
  • 它给出错误...“在类型 id 上找不到属性视图”
  • @laura-wen 删除这一行 [self.parentViewController.childViewControllers objectAtIndex:1];而不是写这一行 [self.childViewControllers objectAtIndex:1];
【解决方案2】:

ParentViewController写下以下代码:

[self addChildViewController:arrayChildViewController[0]];
[arrayChildViewController[0] didMoveToParentViewController:self];

[self addChildViewController:arrayChildViewController[1]];
[arrayChildViewController[1] didMoveToParentViewController:self];

[self addChildViewController:arrayChildViewController[2]];
[arrayChildViewController[2] didMoveToParentViewController:self];

这是arrayChildViewController[1]:

 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { //         [picker dismissViewControllerAnimated:YES completion:nil];   [self.parentViewController dismissViewControllerAnimated:YES completion:nil];  [self.parentViewController.childViewControllers objectAtIndex:1];
 }

parentVieController无法显示arrayChildViewController[1],变成arrayChildViewController[0]

【讨论】:

    【解决方案3】:

    试试下面的代码..它会帮助你。

    代码:

    [self.parentViewController addChildViewController:childViewControllers[0]];
    [self.parentViewController addChildViewController:childViewControllers[1]];
    [self.parentViewController.childViewControllers objectAtIndex:1];
    

    【讨论】:

    • @laura-wen 分享您的代码,以便我看到并尝试帮助您。
    • 嗨..朋友,如果我的答案有任何错误,请通知我而不是投反对票,这样下次我就不会犯同样的错误了。我在我的设备上运行后发布了这个答案。它运行完美。
    • 朋友,这是正确的代码,你为什么要投反对票.. 在投反对票之前先运行并检查它。这段代码运行完美。
    • =.= 实际上,不是我,我什至不能投反对票和赞成票:-(,因为我的声誉低于 15。昨晚很晚,你知道,所以我回家了。我试过了,确实有效,非常感谢。
    • @laura-wen 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多