##開発環境
開発環境はXcode Version 11.2 beta (11B41)
Swift version 5.0.1 です。
前提・実現したいこと
Swiftを初めて半年ちょっとの者です。
iOS向けにペット管理(犬)のアプリ開発をしており、Swiftで開発をしています。
今回の画面での使用ライブラリはSegementSlide、Eureka、ImageRow、NCMBです。
メイン画面(ViewA)はTwitterのフォローリスト画面のように登録した犬が上から登録されていき、SegementSlide内のUITableViewControllerによってスクロールできるようになっています。
ViewAにはNavigationBarがあり右上に新しい犬を追加できるように追加ボタンが配置してあります。そこを押すと、犬の新規登録画面(ViewB)に遷移、ViewB内の登録完了ボタンを押すと、登録完了メッセージが出てくる画面(ViewC)に遷移します。ViewC内でボタンを押すとTOP画面(ViewA)に戻るということを実現したいです。
内容を整理すると、
ViewA → ViewB → ViewC → ViewA
となります。また、ViewAからViewB、ViewBからViewCどちらもNavigation Controller管理下にあり、performSegueでwithIdentifierを設定し、遷移しております。
###問題点
ViewCからViewAに戻る際、
####ViewC内で
@IBAction func backToTop(_ sender: Any) { self.navigationController?.popToRootViewController(animated: true) }
でViewAに遷移はできていて、ScrollViewも表示できているのですが、以下の写真の通りNavigationBarのみが表示されなくなってしまいます。
ちなみに初期画面(ViewA)は以下のとおりです。
試したこと
####ViewA画面にて
override func viewDidLoad() { super.viewDidLoad() reloadData() //NavigationBar設定 self.navigationItem.title = "Dogs List" self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "追加", style: .done, target: self, action: #selector(addDogButton)) } override func viewWillAppear(_ animated: Bool) { self.tabBarController?.tabBar.isHidden = false self.navigationController?.navigationBar.isHidden = false }
上記の通り、
reloadData()
navigationBar.isHidden = false
などで再読み込みとnavigationBarの表示はしております。
初期画面では表示されていたものが、一度離れて元の画面を再表示すると消えてしまうのにはなにか理由がありますでしょうか?
SDKなどのライブラリとの問題なのでしょうか?お詳しい方がいましたらご教授いただけると助かります。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/17 16:10
2020/01/17 16:23