How can create a SplitViewController programmatically in Swift?

val_lek picture val_lek · Jun 10, 2014 · Viewed 9.4k times · Source

What steps do I need to do? In Objective-C we created a rootViewController and detailViewController, after there added this controllers to splitViewController. For example:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
    MTTRootViewController *rootViewController = [[MTTRootViewController alloc] init];
    MTTDetailedViewController *detailedViewController = [[MTTDetailedViewController alloc]init];
    splitViewController.viewControllers = [NSArray arrayWithObjects:rootViewController, detailedViewController, nil];
    [self.window setRootViewController:(UIViewController*)splitViewController];
    [self.window makeKeyAndVisible];
    return YES;
}

How can I do the same in Swift?

Answer

rusBogun picture rusBogun · Jun 11, 2014

if you want do it with navigationController, then try it:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    self.window!.backgroundColor = UIColor.whiteColor()
    var splitViewController =  UISplitViewController()
    var rootViewController = RootViewController()
    var detailViewController = DetailViewController()
    var rootNavigationController = UINavigationController(rootViewController:rootViewController)
    var detailNavigationController = UINavigationController(rootViewController:detailViewController)
    splitViewController.viewControllers = [rootNavigationController,detailNavigationController]
    self.window!.rootViewController = splitViewController
    self.window!.makeKeyAndVisible()
    return true
}