我已經閱讀了關於在兩個視圖控制器之間傳遞數據的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