我试图了解从Interface Builder或Storyboard加载时UIViewController-> UIView中发生了什么。
当我遇到最常见的问题时,我开始想知道事情如何在后台工作,即在控制器之间传递参数。
在使用导航控制器的故事板中,我有一个由CoreData元素加载的表视图,并且单个元素作为NSManagedObjectID通过segue方法中的@property传递到下一个控制器,用于显示详细视图。 在接收控制器上,我正在检查存在并在需要时重建完整对象。
此时,问题是,放置和处理这种逻辑的最佳位置在哪里? 我来自Java EE背景,其中控制器被称为servlet,并且出于性能原因的servlet可能被初始化一次并被许多用户共享(通过线程池),因此不鼓励(危险更合适)实例变量。 仅仅因为@property是一个实例变量我不想使用相同的机制,我的UIViewController实例化一次,并且在视图控制器的情况下CoreData对象保持不变。
答案 0 :(得分:0)
在iOS上,每个视图控制器管理单个视图及其子视图。即使您使用UISplitViewController同时在屏幕上放置两个相同的视图控制器,它们也是视图控制器类的两个独立实例,我相信故事板为每个执行的segue实例化一个新的视图控制器(虽然我可能是错的) 。因此,使用属性不仅是完全安全的 - 这是预期的做法。