gpt4 book ai didi

objective-c - UIViewController 中的 UIViewController

转载 作者:行者123 更新时间:2023-11-28 18:42:00 25 4
gpt4 key购买 nike

所以我有一个 viewControllerA,我想添加另一个由 viewControllerB 管理的 View 。只有一个 UISlider 在 vi​​ewControllerB 中激活一个简单的 Action 。如果我不碰这个 UISlider 就不会崩溃,一旦我使用 UISlider 就会崩溃。我正在使用 ARC。我正在使用:

[self.view addSubView: viewControllerB.view];

将 viewControllerB 添加到 viewControllerA。我错过了什么吗?谢谢。

好的。这看起来是一个非常简单的情况。我刚刚添加了一个 View Controller 和一个 Action 。这是 github 上的演示项目代码:https://github.com/randomor/Demo

我希望它起作用的原因是因为我有另一个应用程序可以当场创建一个 View Controller 并将其添加到另一个 View 。而且我不想模态地这样做,因为我不想让新的 View Controller 覆盖整个屏幕。谢谢。

解决方案:所以我现在只使用最新的 ViewController 包含 API:

[self addChildViewController:viewControllerB];

有效!只要我添加了这一行,事件就会传递给它自己的 Controller 并且它不会崩溃。

最佳答案

我推荐你,使用下面的代码

ViewControllerA.h

    #import "ViewControllerB.h"

ViewControllerA.m 中(您要推送新 Controller 的位置)

ViewControllerB *newController = [[ViewControllerB alloc]init];
[self presentModalViewController:newController animated:YES];

ViewControllerB.m中你需要

[self.presentingViewController dismissModalViewControllerAnimated:YES];

让它再次消失。

关于一个打开的屏幕的多个 Controller (Apple ViewController 编程指南):

Each custom view controller object you create is responsible for managing exactly 
one screen’s worth of content. The one-to-one correspondence between a view controller
and a screen is a very important consideration in the design of your application.
You should not use multiple custom view controllers to manage different portions
of the same screen. Similarly, you should not use a single custom view controller
object to manage multiple screens worth of content.

关于objective-c - UIViewController 中的 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10046048/

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