How can I create a SplitViewController programmatically in Swift?

What steps do I need to take? In Objective-C, we created the rootViewController and detailViewController , after adding these controllers to the splitViewController . For instance:

  - (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?

+6
source share
2 answers

if you want to do this with navigationController then try:

 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 } 
+11
source

After a while I found the answer:

The first time you need to create rootViewController and detailViewController. For example, rootViewController will inherit from UITableViewController, and detailViewController will inherit from UIViewController. Next time you will need to do this:

 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() splitViewController.viewControllers = [rootViewController,detailViewController] self.window!.rootViewController = splitViewController self.window!.makeKeyAndVisible() return true } 
+1
source

Source: https://habr.com/ru/post/970604/


All Articles