Спасибо.
Наверное несколько неясно описал ситуацию.
@IBAction для кнопки находится в первом контролере. В Вашем варианте он во втором.
Первый контроллер получает значение string из основного окна через prepare(for segue: NSStoryboardSegue, sender: Any?) одновременно с открытием pop up окна, и этот string далее должен обрабатываться в зависимости от опций выбираемых юзером в открытом pop up окне. Эта обработка происходит при нажатии кнопки в первом контроллере (контроллере отрытого pop up окна), а полученные в результате этого массивы должны передаться во второй контролер (контроллер дефолтного вью в котором находятся два NSScrolView . Этот дефолтный вью находится в pop up окне, точнее его ViewContainer). Т.е. @IBAction должна привести к передаче массивов и обновлению вида засинхронизированных NSScrolView (один масштабная линейка а втрой картинка со стрелками). Пробовал в @IBAction засунуть
performSegue(withIdentifier: NSStoryboardSegue.Identifier(rawValue: "ORFsGraphic"), sender: self)
и соответственно прописать
var arrayOfForwardORFsLines = [[(Int, NSRange)]]()
var arrayOfReverseORFsLines = [[(Int, NSRange)]]()
override func prepare(for segue: NSStoryboardSegue, sender: Any?)
{
if segue.identifier!.rawValue == "ORFsGraphic"
{
let controller = segue.destinationController as! ORFsGraphicController
controller.arrayOfForwardORFsLines = arrayOfForwardORFsLines
controller.arrayOfReverseORFsLines = arrayOfReverseORFsLines
//controller.lengthOfDNA = dna.count
}
}
Но ничего не происходит. Я думал что при нажатии кнопки обновленные массивы должны передаваться через segue, но видимо я что то не понимаю в том как работает segue. Что не так в том что я делаю с segue.
С notification не прбовал.