gpt4 book ai didi

iphone - 添加 ViewControllers 的 View 作为 subview

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:23 25 4
gpt4 key购买 nike

我正在将 ViewControllers View 作为 subview 添加到另一个 ViewController,

示例:

我在 FirstScreen viewcontroller 中这样做,

         [self.view addSubview:self.secondScreen.view]; 

一旦我将它从 FirstScreen 中删除,我就会执行此操作

         [self.secondScreen.view removeFromSuperView];
self.secondScreen=nil;

但是在添加 subview 时调用了 ViewDidLoad 方法,但是没有调用 removeFromSuperView ViewDidUnLoad 方法。

我的问题

1) 一旦我将实例 self.secondScreen 设置为 nil,我在 secondScreen 中的所有对象都将被释放

2)这样做是否安全,这样我就不会收到任何泄漏或内存警告

最佳答案

假设你的应用支持iOS 5.0以上版本,你需要添加为,

[self addChildViewController:self.secondScreen];
[self.view addSubview:self.secondScreen.view];

与删除类似,您可以使用 removeFromParentViewController 然后从 super View 中删除。检查apple documentation here.

ViewDidUnLoad 从 iOS 6.0 开始被弃用并且不会被调用。检查the documentation here.

关于您的问题,

1) will all my objects in my secondScreen will get deallocated once i set the instance self.secondScreen to nil

一旦你完成了 self.secondScreen 类,一旦你将它设置为 nil,它就会开始释放这个类中的对象。如果您使用的是 ARC,则不必担心发布问题。操作系统会处理这些事情。

2)Is it safe to do like this so that i wont get any leaks or memory warning

是的,如果您使用的是 ARC,这很好。对于非 ARC,您需要确保已正确释放此类中的所有变量。确保在这种情况下保留/释放都是平衡的。

关于iphone - 添加 ViewControllers 的 View 作为 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13797035/

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