gpt4 book ai didi

ios - 多个 ViewController(containerView?childView?viewController 的实例?)

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:12:25 24 4
gpt4 key购买 nike

我需要在另一个 View 之上添加一个新 View (带 ViewController)。用户与这个新 View 交互了一段时间,然后我想将其删除。在旧版本的 Xcode 中,我可以将其添加为 subview 。我现在收到 EXC_BAD_ACCESS 错误。

我不想将添加的 View 作为模式。我需要通过添加的 View 查看原始背景。我已经阅读了很多关于新的自定义 containerViews、addChildView 和 presentView 的内容。我看不出这些是明确的答案。

这是以前有效的旧代码 -主 ViewController 中的操作:

-(IBAction)showWhiteView:(id)sender
{
WhiteViewController *whiteView = [[WhiteViewController alloc] initWithNibName:@"WhiteViewController" bundle:nil];
[self.view addSubview:whiteView.view];
}

在添加的 View 中删除它的操作:

-(IBAction)removeView:(id)sender
{
[self.view removeFromSuperview];
}

感谢您的帮助。

也许一个视觉示例可以帮助解释 - 假设主视图是海洋,动画波浪和云朵由 MainView Controller 控制移动。用户点击一些东西,我想在主视图中添加一条船(WhiteView)。我希望用户与船互动:点击此处帆打开,点击那里 anchor 落下等(需要 WhiteViewController 的方法)最终我想将船从海洋中移走。

谢谢 Tim - 添加了新代码:

-(IBAction)showWhiteView:(id)sender
{ WhiteViewController *whiteView = [[WhiteViewController alloc] initWithNibName:@"WhiteViewController" bundle:nil];
[self addChildViewController:whiteView];
[whiteView didMoveToParentViewController:self];
[self.view addSubview:whiteView.view]; }

并在 WhiteViewController 中移除:

-(IBAction)removeView:(id)sender
{ [self.view removeFromSuperview];
[self removeFromParentViewController]; }

我期待着任何进一步的改进建议。谢谢大家!

最佳答案

查看答案here关于 UIViewController 包含。我在这里整理了一个关于 UIViewController 包含的示例项目:http://github.com/toolmanGitHub/stackedViewControllers

希望这有帮助。``

蒂姆

关于ios - 多个 ViewController(containerView?childView?viewController 的实例?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9883820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com