Objective c 在appDelegate中保存UIViewController

Objective c 在appDelegate中保存UIViewController,objective-c,uiviewcontroller,Objective C,Uiviewcontroller,我使用的是Xcode 4.3,需要知道当前视图的父视图控制器 我也在使用故事板 self.parentViewController始终返回nil 我看到了将AppDelegate类中的父视图控制器保存为属性的不同答案。例如,要在AppDelegate和代码写入中创建变量:UIViewController parentViewController: appDelegate.parentViewController = self; 我担心它会消耗内存,因为这是一个沉重的物体 使用故事板时,了解Ar

我使用的是Xcode 4.3,需要知道当前视图的父视图控制器

我也在使用故事板

self.parentViewController
始终返回
nil

我看到了将
AppDelegate
类中的父视图控制器保存为属性的不同答案。例如,要在AppDelegate和代码写入中创建变量:
UIViewController parentViewController

appDelegate.parentViewController = self;
我担心它会消耗内存,因为这是一个沉重的物体


使用故事板时,了解AretView控制器的最佳方法是什么?

只要只存储对对象的引用(在应用程序委托中),对象是否“重”并不重要。创建第二个对象会有所不同,但线条

appDelegate.parentViewController = self;
否则,它只存储对对象的引用


我知道这并不能回答您的直接问题,但我认为您应该继续使用“在应用程序委托中存储引用”方法。

如果父视图控制器为nil,则属性为空。您对父视图控制器的确切含义是什么?要在AppDelegate和代码中创建变量:UIViewController parentViewController,请编写:AppDelegate.parentViewController=self;但是,我看到,如果我write=self,每次我输入不同的UIViewController时,self都会更改为当前的视图控制器@Odelya你的应用程序是如何工作的?在每次离开屏幕时释放控制器对象,并在重新进入屏幕时重新创建控制器对象时,是否涉及某种导航?如果是这种情况,那么您可能应该从控制器类中删除“重”部分,并从中创建一个新类-让我们将其命名为
HeavyStuff
。然后,您可以在app委托中实例化一次
HeavyStuff
,并通过
appDelegate.HeavyStuff
提供对实例的引用。我正在使用故事板。导航由segue完成。我知道segue实际上是每个人创造的time@Odelya那么,你可以试试我概述的方法。当然,您需要注意所涉及的权衡:由于
HeavyStuff
对象现在不再被释放,您的应用程序将不断提高内存使用率。