Tabbarでページを3つ作って、
インスタグラムみたいに
真ん中のボタンをおしたら
投稿ページがモーダル表示される
みたいなものを作っております。
投稿ページのモーダル表示まではできたのですが、
(その投稿ページにはnavigation controllerをembed in させて、
ナビゲーションバーの左ボタンにキャンセルボタンを作り
ナビゲーションバーの右ボタンにshare実行ボタンをおきました)
投稿を実行をしたら、topページに戻らせたいのですが
うまくいきません。
(3つのタブは1つ目はtopページで、2つめは投稿ページ、3つ目はmyPage。3つめのmyPageから投稿画面へ移動しても、投稿完了したら1つ目タブのtopページに自動で遷移させたい。そんなイメージです)
dismissしてモーダルを閉じたら、topページに遷移するというのを
めざして書いたのですが
whose view is not in the window hierarchy!
のエラーがでてしまいます。
tabbarcontrollerのidentiferにMainを設定してます
以下投稿ページの.swiftです。
import UIKit class ShareEventViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() //キャンセルボタン self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "キャンセル", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.tappedCancel(sender:))) // Do any additional setup after loading the view. } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) //投稿ボタン self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "シェア", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.tappedShare(sender:))) } @objc func tappedCancel(sender: UIBarButtonItem) { self.dismiss(animated: true, completion: nil) } @objc func tappedShare(sender: UIBarButtonItem) { self.dismiss(animated: true, completion: { self.toMain() }) } func toMain(){ let storyboard: UIStoryboard = self.storyboard! let nextView = storyboard.instantiateViewController(withIdentifier: "Main") present(nextView, animated: false, completion: nil) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
dismissしてから遷移。がうまくいかないという気がしてるのですが
その観点で知らべてもうまくいきませんでした。
アドバイスをお願いいたします
よろしくお願いします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/10 13:12
2018/06/10 13:36
2018/06/10 13:47
2018/06/10 14:11