2016-02-28 44 views
0

我是OS X的新手。我創建了一個OS X應用程序,它是關於簡單等待系統的。OS X - 如何保留賽後視圖控制器的數據(NSArray或NSMutableArray)

如果單擊sendString按鈕,TextField中的字符串將被髮送到下一個場景。 (動作SEGUE是展)

第一個視圖控制器:

- (void)prepareForSegue:(NSStoryboardSegue *)segue sender:(id)sender{ 
     WaitScene *destinationScene = [segue destinationController]; 
     destinationScene.receivedString = _textField.stringValue; 
} 

第二視圖控制器:

- (void)viewWillAppear{ 
     _myArray = [NSMutableArray array]; 
     [_myArray addObject:_receivedString]; 
     _labelNOW.stringValue = _myArray[0]; 
} 

每次點擊按鈕,myArray的彷彿回到初始狀態。我想我不應該使用viewWillAppear。我該如何介紹myArray的字符串?

回答

0

您正在重新創建一個新的空NSMutableArray每次調用viewWillAppear。爲了防止這種情況,只需確保只創建_myArray陣列一次。

改變第二視圖控制器到如下所示:

- (void)viewWillAppear{ 
     if (_myArray == nil) _myArray = [NSMutableArray array]; 
     // _myArray = [NSMutableArray array]; 
     [_myArray addObject:_receivedString]; 
     _labelNOW.stringValue = _myArray[0]; 
} 

首次創建第二視圖控制器,用於_myArray值爲nil。在此更新後的代碼中,您檢查_myArray是否等於nil,如果是,則僅創建一個NSMutableArray。在後續調用viewWillAppear時,_myArray不是nil,因此代碼只是繼續使用相同的_myArray

+0

謝謝!它確實有幫助。 – HenataJung

相關問題