假设我有2个名为FirstViewController和SecondViewController的viewControllers
现在使用导航我从FirstViewController转到SecondViewController。
现在我在SecondViewController上有一个名为resultArray的数组
我希望在FirstViewController上获取resultArray的值
然后如何在FirstView Controller上获取值?
有什么想法吗?
答案 0 :(得分:1)
答案形式@Nishant B(以及其他后续答案)将有效。
由于您正在使用UINavigationController,并且想要一步返回控制器,您也可以在SecondViewController中执行此操作:
NSUInteger count = [[self navigationController].childViewControllers count];
FirstViewController* firstVC = [[self.navigationController childViewControllers]
objectAtIndex:count -2];
[firstVC setSomeValue:someValue];
答案 1 :(得分:0)
你可以在这里做的是在你的第一堂课中创建一个构造函数,例如
-(void)initWithArrayOfSecondClass:(NSMutableArray *)arr_OfSecondClass;
{
arr_FirstClassArray = [[NSMutableArray alloc]initWithArray:arr_OfSecondClass];
}
从第二个类发送此数组为:
[objOfFirstClass initWithArrayOfSecondClass:resultArray];
答案 2 :(得分:0)
您可以通过以下方式实现:
“FirstViewController”文件中的:
1)创建数组对象,例如:arrTest;
2)创建一个方法,例如:
-(void)getArrayValue:(NSMutableArray *)pArr
{
arrTest = pArr;
}
3)在推送之前调用“SecondViewController”的方法:
[objSecondViewController setParent:self];\
现在,在“SecondViewController”文件中:
.h文件:
@class FirstViewController;
在.m文件中:
#import "FirstViewController.h"
并且
1)在.h文件中声明一个变量:
id parent;
2)声明并创建一个方法“.h”和“.m”文件:
-(void)setParent:(id)pID
{
parent=pID;
}
3)当您想出数组时,请调用以下方法:
[parent getArrayValue: <your_new_array>];
希望,你知道自己想要什么。
快乐的编码!
干杯!
答案 3 :(得分:0)
还有一种使用本地通知的方法。
假设您要将数据从B发送到A.
按下按钮左右,在B中执行以下操作:
- (NSString *) saveAndExit
{
[[NSNotificationCenter defaultCenter] postNotificationName: @"AnswerValue" object: answerView.text];
[self.navigationController popViewControllerAnimated:YES];
return @"abc";
}
在A的viewDidLoad
中,添加以下内容:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(incomingNotification:) name:@"AnswerValue" object:nil];
还添加以下方法:
- (void) incomingNotification:(NSNotification *)notification{
NSString *result = [notification object];
}
两者的通知名称必须相同。在这种情况下,名称是AnswerValue。这会将值“abc”从B发送到A并存储在result
。