Fix issues with controller instantiation

This commit is contained in:
Gregory John Casamento 2020-07-04 14:55:08 -04:00
parent 7d92caca6f
commit 41460c80c5
4 changed files with 150 additions and 102 deletions

View file

@ -37,6 +37,7 @@
#import "AppKit/NSViewController.h"
#import "AppKit/NSStoryboardSegue.h"
#import "AppKit/NSStoryboard.h"
#import "AppKit/NSWindowController.h"
@interface NSStoryboardSegue (__ViewControllerPrivate__)
- (void) _setDestinationController: (id)controller;
@ -202,9 +203,17 @@
{
NSStoryboardSegue *segue = [_segueMap objectForKey: identifier];
NSStoryboard *ms = [NSStoryboard mainStoryboard];
NSString *destId = [segue destinationController];
id destCon = [ms instantiateControllerWithIdentifier: destId];
id destCon = nil;
if ([[segue destinationController] isKindOfClass: [NSViewController class]] ||
[[segue destinationController] isKindOfClass: [NSWindowController class]])
{
destCon = [segue destinationController];
}
else
{
NSString *destId = [segue destinationController];
destCon = [ms instantiateControllerWithIdentifier: destId];
}
[segue _setSourceController: self];
[segue _setDestinationController: destCon]; // replace with actual controller...
[self prepareForSegue: segue