OS X - 如何使用segue创建一个窗口并保留数据?

时间:2016-02-29 00:55:09

标签: macos cocoa

我有两个View Controllers。第一个让sendbutton转到第二个视图控制器。 Action SegueShow。每次单击该按钮,都会再次弹出新窗口。我不想再次创建新窗口,我只想要一秒View Controller

我的FirstViewController.m

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

SecondViewController.m

- (void)viewWillAppear{
        if(_myMutableArray == nil)  _myMutableArray = [NSMutableArray array];
        [_myMutableArray addObject:_receivedString];
}

我想要的是将第一个View Controller' s TextField中的字符串重复发送到下一个View Controller。并且只使用第一次创建的第二个窗口。

See my Storyboard

2 个答案:

答案 0 :(得分:2)

您可以在IB中执行此操作而无需任何代码。将目标视图中视图控制器的Presentation属性从Multiple更新为:

https://stackoverflow.com/a/36104388/287963

答案 1 :(得分:0)

不要将segue设置为自动发生。为按钮创建一个IBAction,测试你的第二个视图控制器是否已经在屏幕上,并且根据它是否已经存在而是否为segue。