Решение этой проблемы заключается в NSViewController кнопки, которая запускает переопределение segu-сценария shouldPerformSegue и выполняет там проверку, чтобы определить, должен ли быть выполнен переход.
override func shouldPerformSegue(withIdentifier identifier: NSStoryboardSegue.Identifier, sender: Any?) -> Bool
{
var result = false
if identifier == "AddPayeeSegue"
{
if AccountingData.instance.book.account.count > 0
{
result = true
}
}
return result
}