私たちが知っているように、PageTabBarControllerを実装するために、我々はAppDelegate.swiftでこれらのコードを挿入する必要があります。Cosmicmind/Material:AppDelegate.swiftを使用せずにPageTabBarControllerを実装するにはどうすればよいですか?
今func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
let viewControllers = [MatchDetailViewController(),ListPlayersViewController(),ChatViewController()]
window = UIWindow(frame: Device.bounds)
window!.rootViewController = MatchViewController(viewControllers: viewControllers, selectedIndex: 0)
window!.makeKeyAndVisible()
}
、私は私のマッチデータのために詳細を開きたいときPageTabBarControllerを使用する必要があります。私の質問は、AppDelegate.swiftにそれらのコードを挿入せずに実装する方法です.AppTelegate.swiftは、最初のアプリの起動時にMatchTextController(PageTabBarControllerから継承)を開くためです。
私はこのコードを試してみましたが、それはクラッシュの原因となります、そしてそれは私のAppDelegate.swift
class MatchViewController: PageTabBarController {
var window: UIWindow?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
open override func prepare() {
super.prepare()
let viewControllers = [MatchDetailViewController(),ListPlayersViewController(),ChatViewController()]
//1st try: Crash
window = UIWindow(frame: Device.bounds)
window!.rootViewController = MatchViewController(viewControllers: viewControllers, selectedIndex: 0)
window!.makeKeyAndVisible()
//2nd try: error
self.rootViewController = MatchViewController(viewControllers: viewControllers, selectedIndex: 0)
//3rd try: crash
self.viewControllers = viewControllers
delegate = self
preparePageTabBar()
}
fileprivate func preparePageTabBar() {
pageTabBar.lineColor = Color.blue.base
pageTabBar.dividerColor = Color.blueGrey.lighten5
pageTabBarAlignment = PageTabBarAlignment.top
pageTabBar.lineAlignment = TabBarLineAlignment.bottom
}
}
extension MatchViewController: PageTabBarControllerDelegate {
func pageTabBarController(_ pageTabBarController: PageTabBarController, didTransitionTo viewController: UIViewController) {
}
}
おかげで、子供のコントローラとしてのUIViewControllerを追加すると、非常に馴染みi'm、しかし、私はCollectionViewを使用して(TabBarのを実装するために、別の選択肢を把握しています)、コンテナビューのUIPageViewController –
ああ、大丈夫です...解決策がある限り。私は現在、PageTabBarControllerをリファクタリングしていますので、それ以上の提案や質問があればお知らせください、ありがとうございます:) – CosmicMind