我正在创建一个需要有一个进度窗口的应用程序,我想在其中为每个正在处理的项目动态插入一个子视图,比如Finder的复制文件面板窗口。并且在处理完成后也会动态删除它。
我想对所有子视图使用相同的 NSViewController 视图,并且我使用 NSStackView 来管理视图。
但是,为了使子视图保留在内存中,我必须对它们保持强烈的引用,我知道的唯一方法是为我需要显示的每个子视图创建一个属性。像这样:
@propery (strong) NSViewController *myViewController1;
@propery (strong) NSViewController *myViewController2;
@propery (strong) NSViewController *myViewController3;
@propery (strong) NSViewController *myViewController4;
....
我想知道是否有更好,更有活力的方法吗?或者我是否必须为子视图创建x个属性才能知道我有足够的实例要分配,因为我无法确定用户在运行应用程序和导出项目时需要多少个进程视图。
因此,我想动态分配每个子视图并创建一个强引用。那可能吗?或者有其他方式做我想做的事情吗?
如果我不清楚,请告诉我,我很乐意解释更多,以帮助解决这个问题。
答案 0 :(得分:1)
您可以在NSArray
中存储对视图控制器的引用。数组保留对它们包含的对象的强引用。