SegementSlideDefaultViewControllerを継承したBaseViewControllerがあり、アプリ起動時、タブと各コンテンツが正しく表示されている状態です。
Universal Linkで、あるURLをタップされた際にBaseViewControllerの特定のタブを選択した状態の画面を出したいと思い、試行錯誤したのですがうまくいかず、こちらに質問させていただきました。
まだ勉強して間もなく、基本的なことが理解できていない可能性が高いのですが、何卒ご指摘いただけると幸いでございます。
現在の実装と現象
AppDelegate.swiftでUniversalLinkがタップされると実行される箇所に以下の記載をしています。
※前後のソースは不要と判断してこちらに掲載していませんが、不足している情報などございましたらご指摘いただけますようお願いいたします。
####1 segementSlideContentScrollViewをrootViewControllerにセット
swift
1// windowを生成 2self.window = UIWindow(frame: UIScreen.main.bounds) 3// Storyboardを指定 4let storyboard = UIStoryboard(name: "Main", bundle: nil) 5let nextVC = storyboard.instantiateViewController(identifier: "BaseViewController") as! BaseViewController 6self.window?.rootViewController = nextVC.segementSlideContentScrollView(at: 3) 7self.window?.makeKeyAndVisible()
こちらのコードですとnextVCの3つめのタブが選択されているChildViewControllerのみが開き、タブを含むHeader部分が表示されませんでした。
次節以降はnextVC生成部分のみ記載いたします。
####2 defaultSelectedIndexを指定した上でcurrentのViewControllerをセット
swift
1nextVC.viewDidLoad() 2nextVC.defaultSelectedIndex = 3 3self.window?.rootViewController = nextVC.currentSegementSlideContentViewController
これだと画面が真っ暗になってしまいました
####3 defaultSelectedIndexを指定した上でnextVCをセット
swift
1nextVC.viewDidLoad() 2nextVC.defaultSelectedIndex = 3 3self.window?.rootViewController = nextVC
これだと画面が真っ白のままとなりました・・・
####4 HeaderViewを追加
swift
1 nextVC.viewDidLoad() 2 nextVC.defaultSelectedIndex = 3 3 self.window?.rootViewController = nextVC.segementSlideContentScrollView(at: 3) 4 self.window?.addSubview(nextVC.segementSlideHeaderView()!)
以下の例外が発生
Fatal error: Unexpectedly found nil while unwrapping an Optional value
恐れ入りますが、ご返信いただけると幸いです・・
あなたの回答
tips
プレビュー