我是OS X的新手。我创建了一个关于简单等待系统的OS X应用程序。
如果单击sendString按钮,TextField中的字符串将发送到下一个场景。 (Action segue是Show)
第一视图控制器:
- (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 :(得分: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
。