我已经阅读了关于在两个视图控制器之间传递数据的SO上的几个问题,并且看到了建议这样做的不同方式。我的问题如下:从一个视图控制器传递NSMutableArray到另一个函数
我有一个视图控制器(让我们称之为“A”),在工具栏中有一个搜索栏。没有其他的。然后,我有另一个视图控制器(“B”)负责在用户在搜索栏中搜索时按下键盘上的搜索按钮时显示弹出视图。 这一切工作。用户输入文字,按下搜索按钮,显示弹出窗口。大。
现在我还没有显示在酥料饼的tableview任何搜索结果,我试图在B到NSMutableArray
传递给函数作为参数:
:
@property (nonatomic, retain) NSMutableArray *searchResults;
在家蚕
:
@synthesize searchResults;
-(void)setSearchResults:(NSMutableArray *)resultArray{
[self.searchResults removeAllObjects];
[self.searchResults addObjectsFromArray:resultArray];
}
在阿
:
#import "B.h"
@property(nonatomic, retain) B *viewControllerObjectB;
在时三十分:
@synthesize viewControllerObjectB;
//The searchResultsArray is passed on from another function
-(void)communicateWithB:(NSMutableArray *)searchResultsArray{
//I initialize the viewControllerObjectB in here
NSMutableArray *temp = [[NSMutableArray alloc] initWithArray:searchResultsArray];
[viewControllerObjectB setSearchResults:temp];
}
现在除了我这一切的作品没有得到临时的传递到B.M.功能内容我没有空(无)。这是我的问题。
我对iOS相当新,所以一切帮助将不胜感激。
编辑:忘了提及我正在使用ARC。
我建议你,当你initalize B观看控制器的对象传递结果数组的时间。或者你必须通过调用[viewControllerObjectB.tableview reloadData]加载新的结果后重新加载tableview数据。 – iNeal
只需清楚** **是什么零,你从NSLog(@“Temp:%@”, temp);'在'communicWithB'方法中?另外,'NSLog(@“结果:%@”,resultArray);'在'setSearchResults'中? (如果“Temp”表示它为零,那么'searchResultsArray'呢?) –
在searchResultsArray中,我得到一个包含5个对象的数组。在communicWithB我得到一个空的数组。我在'addobjectsFromArray'行下面设置了一个刹车点并打印出内容。 – Hrafn