Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.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 将数据从VC1传递到VC4_Ios_Objective C_Properties_Uinavigationcontroller - Fatal编程技术网

Ios 将数据从VC1传递到VC4

Ios 将数据从VC1传递到VC4,ios,objective-c,properties,uinavigationcontroller,Ios,Objective C,Properties,Uinavigationcontroller,我有一个关于数据管理的基本问题。如果我想在VC4中使用VC1中的数据,我是否需要通过VC2和VC3传递它们,即使它们不使用数据 我正在使用navigationController,现在我有以下场景:在VC4中,我将连接到webserver,根据用户在VC1中选择的内容检索一些数据 我在VC2、VC3和VC4的头文件上声明属性 @property(强,非原子)NSString*myString 现在,我使用prepareforsgue方法传递这个@property,因为我使用的是storyboar

我有一个关于数据管理的基本问题。如果我想在
VC4
中使用
VC1
中的数据,我是否需要通过
VC2
VC3
传递它们,即使它们不使用数据

我正在使用
navigationController
,现在我有以下场景:在
VC4
中,我将连接到
webserver
,根据用户在
VC1
中选择的内容检索一些数据

我在
VC2
VC3
VC4
头文件上声明
属性

@property(强,非原子)NSString*myString

现在,我使用
prepareforsgue
方法传递这个
@property
,因为我使用的是
storyboard
。所以基本上,它们在
VC1
VC2
VC3
上看起来是这样的:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"mySegue"]) {
        NextVC *next = (NextVC*)segue.destinationViewController;
        next.myString = self.myString;
    }
}

现在,这对我来说很好,我只是想确保这是一个很好的编程实践,如果没有更好的方法来实现这一点的话。特别是当我们有很多数据时,因为我们并不总是只传递简单的
NSStrings
。我只关心将
内存
分配给我不使用的对象,不管大小如何

你的方法是正确的

或者,您也可以始终使用
视图控制器属性

您可以通过调用以下命令从
VC4
访问
VC1

UIViewController *vc1 = self.navigationController.viewControllers[0];
然后访问所需的
VC1
数据