UITabBarControllerの子要素ViewController同士を戯れさせてみた。[Swift5]
3262 ワード
はじめに
UITabBarControllerをコードで書いていて、子要素のViewControllerから別のViewControllerにアクセスしたいと思い、少し詰まりました。
試したこと
Chapter1
HogeViewController.swift
guard let viewControllers = self.tabBarController?.viewControllers,
let sample = viewControllers[1] as? SampleViewController else {
return
}
HogeViewController.swift
guard let viewControllers = self.tabBarController?.viewControllers,
let sample = viewControllers[1] as? SampleViewController else {
return
}
これだと二行目の条件分岐が引っかかりました。
Chapter2 Answer
実はUITabBarControllerのViewControllersそれぞれにさらにchildrenというプロパティがありました。
HogeViewController.swift
for vc in viewControllers {
print("vc \(vc.children)")
}
結果
vc [<プロジェクト名.SampleController: 0x7fad4581d800>]
vc [<プロジェクト名.HogeViewController: 0x7fad47865800>]
ということで
HogeViewController.swift
if let child = viewControllers[1].children.first as? SampleViewController {
//これでSampleViewControllerの値をいじる。
}
他のViewControllerの値を外からいじるのは良くないのかもしれませんが。
参考文献
なし
終わりに
実務未経験ですが、もがき楽しんでおります。
Author And Source
この問題について(UITabBarControllerの子要素ViewController同士を戯れさせてみた。[Swift5]), 我々は、より多くの情報をここで見つけました https://qiita.com/di_th_hm_ms/items/22d4e923c10882db6f90著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .