Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 离开视图控制器导航后保留可变数组值_Ios_Objective C_Xcode - Fatal编程技术网

Ios 离开视图控制器导航后保留可变数组值

Ios 离开视图控制器导航后保留可变数组值,ios,objective-c,xcode,Ios,Objective C,Xcode,我是objective-c的新手,试图更好地理解为什么会发生以下情况。。。在我的视图控制器中,我在viewDidLoad中有以下内容: - (void)viewDidLoad { [super viewDidLoad]; [self createProjectData]; } 然后: - (void)createProjectData { if(!self.projectData) { self.projectData = [[NSMutableArray

我是objective-c的新手,试图更好地理解为什么会发生以下情况。。。在我的视图控制器中,我在viewDidLoad中有以下内容:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self createProjectData];
}
然后:

- (void)createProjectData
{
     if(!self.projectData)  {
    self.projectData = [[NSMutableArray alloc] initWithObjects:tempProjectInfo1, tempProjectInfo2, nil];
}
projectData是公共财产:

@property (nonatomic, strong) NSMutableArray *projectData;

我的问题是,当我导航到另一个视图控制器并返回到此视图控制器时,projectData为null,即使我之前已使用上述值初始化。。。所以我真的希望有人能解释我如何保留属性值,这样当我返回时,它就包含了我添加到可变数组中的所有项。

检查
视图中的某个地方是否消失了
您的代码将数组置零


您可能还有处理内存警告的代码,执行类似操作

不要重新创建此视图控制器--使用您以前创建的视图控制器。当您离开视图控制器时,它(及其属性)将被解除分配。这就是为什么离开视图控制器并返回视图控制器后,
projectData
nil
。(请注意,如果您正在使用导航控制器,并且从
viewController1
viewController2
,然后返回到
viewController1
viewController1
的属性将保持不变,因为导航控制器使堆栈保持运行。)您需要描述如何从一个视图控制器移动到另一个视图控制器。如果您使用导航控制器,或者以模式显示第二个控制器,那么您不应该丢失第一个控制器的任何数据(假设您返回正确)。我使用推送序列作为导航控制器的一部分,但从这些评论来看,这似乎不是最好的方法。我试图做的是离开VC1,在VC2上输入项目信息,然后返回到VC1,此时我将把新项目添加到可变数组中。