いつもお世話になっております。
自作アプリに、ページビュー的なものを実装しようと思っています。
参考サイト
上記サイトを参考に実装してみました。
//MessageViewController.swift override func viewDidLoad() { super.viewDidLoad() let viewController1 = MessageViewController() viewController1.title = "Child View 1" let viewController2 = PipsViewController() viewController2.title = "Child View 2" let viewControllers = [viewController1, viewController2] let option = PageMenuOption(frame: CGRect(x: 0, y: 20, width: self.view.frame.size.width, height: self.view.frame.size.height - 20)) let pageMenu = PageMenuView(viewControllers: viewControllers, option: option) self.view.addSubview(pageMenu) }
上記のコードで実行すると、1ページ目(MessageViewController)を表示する際に、
tableView.delegate = self
の箇所でクラッシュしてしまいます。
tableViewがnilになっていました。
色々調べたところ、Storyboardを指定しなければいけないと書いているサイトがあったので、指定してみました。
//MessageViewController.swift override func viewDidLoad() { super.viewDidLoad() let storyboard = UIStoryboard(name: "Main", bundle: nil) //追加 let viewController1 = storyboard.instantiateViewController(withIdentifier: "message") //修正 viewController1.title = "Child View 1" let viewController2 = storyboard.instantiateViewController(withIdentifier: "pips") //修正 viewController2.title = "Child View 2" let viewControllers = [viewController1, viewController2] let option = PageMenuOption(frame: CGRect(x: 0, y: 20, width: self.view.frame.size.width, height: self.view.frame.size.height - 20)) let pageMenu = PageMenuView(viewControllers: viewControllers, option: option) self.view.addSubview(pageMenu)
上記のコードに修正してみたところ、
ViewDidLoadがループで何度も呼ばれるようになってしまいました。
正しい記述方法をご教示頂けますと幸いです。
何卒 よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー