Does @IBSegueAction still not work for AppKit relationship segues from NSWindowController?

I’m working on a storyboard-based AppKit application that uses an NSWindowController containing an NSSplitViewController with multiple child view controllers.

The hierarchy is roughly:

NSWindowController
└── NSSplitViewController
    ├── NSViewController
    ├── NSViewController
    └── NSViewController

I am trying to provide dependencies during storyboard instantiation using either @IBSegueAction or instantiateInitialController(creator:), rather than configuring everything after initialisation.

What I attempted

I added custom initialisers to my view controllers so I can pass dependencies at creation time:

class SplitViewController: NSSplitViewController {
    let dependency: Dependency

    init?(coder: NSCoder, dependency: Dependency) {
        self.dependency = dependency
        super.init(coder: coder)
    }

    required init?(coder: NSCoder) {
        print("init(coder:) was called")
        fatalError("init(coder:) is not supported")
    }
}

I then attempted to intercept storyboard instantiation using @IBSegueAction, trying it in both the window controller and the split view controller:

@IBSegueAction
func makeSplitViewController(_ coder: NSCoder) -> NSSplitViewController? {
    SplitViewController(coder: coder, dependency: dependency)
}

I also tried attaching the segue action at different points in the storyboard, but the behaviour did not change.

Observed behaviour

Regardless of where I place the segue action, AppKit still appears to call:

required init?(coder: NSCoder)

This means my custom initialiser is never used for the split view controller or its children.

Background reference

I found this older known issue in the Xcode 11 release notes:

“A Segue Action on a relationship segue between a NSWindowController and a View Controller is currently not supported and ignored. (48252727)”

This suggests that, at least historically, AppKit relationship segues ignored segue actions entirely.

Has this limitation since been fixed in modern Xcode/macOS SDK releases, or are relationship segues involving NSWindowController still incompatible with @IBSegueAction?

More generally, what is the intended way to provide dependencies to an NSSplitViewController and its child view controllers in a storyboard-based AppKit application? I am also unclear whether instantiateInitialController(creator:) participates in the creation of container hierarchies like split view controllers, or only top-level controllers.

Thanks for the post and thanks for your patience.

What version of Xcode are you using? May I ask you to download the beta 1 version of Xcode 27 and verify if the issue has been resolved or you still having the same issue connecting the IBOutlets?

What the version Xcode that is not working the workaround of dragging from the outlets inspector remains effective?

Please let me know as much as you can about the Xcode version, macOS version as well if you can.

Thanks

Albert  WWDR

Does @IBSegueAction still not work for AppKit relationship segues from NSWindowController?
 
 
Q