アプリ開発の骨組み用プロジェクトを作りました。
構成としては一番メジャー?なTabBarとNavigationControllerを組み合わせたものです。
共同作業時のコンフリクトをなるべく防ぐために、TabごとにStoryboardを分割しています。
AppDelegateはこんな感じ。
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var tabController: MainTabBarController?
var navController1, navController2: UINavigationController?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
self.tabController = MainTabBarController()
var viewControllers: [UIViewController] = []
// ファイル名を指定してStoryBoardを生成
let firstStoryBoard: UIStoryboard = UIStoryboard(name: "FirstTab", bundle: nil)
let secondStoryBoard: UIStoryboard = UIStoryboard(name: "SecondTab", bundle: nil)
// 生成したStoryBoardのInitialViewControllerを取得
let firstViewController: UIViewController = firstStoryBoard.instantiateInitialViewController()!
let secondViewController: UIViewController = secondStoryBoard.instantiateInitialViewController()!
// NavigationController
navController1 = UINavigationController(rootViewController: firstViewController)
navController2 = UINavigationController(rootViewController: secondViewController)
viewControllers.append(navController1!)
viewControllers.append(navController2!)
self.tabController!.viewControllers = viewControllers
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.backgroundColor = UIColor.white
self.window?.rootViewController = self.tabController
self.window?.makeKeyAndVisible()
return true
}
...
}