単体のTableViewクラスでは表示されるのですがSegementSlideを使って表示させようとすると表示されなくなってしまいます。
手順としては、まずViewControllerクラスのみを実装し、テーブルの内容が表示されることを確認。
その後、BaseViewControllerクラスを追加し、case 0、1、default全てViewControllerが表示されるようにしました。
しかし、そのようにすると
tableView.dataSource = self
の部分で
Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
というエラーが発生してしまいます。
何かを設定する必要があるのかどうかも検索しても答えが見つからず、教えていただけないでしょうか。
BaseViewControllerクラスです
Swift
1import UIKit 2import SegementSlide 3 4class BaseViewController: SegementSlideDefaultViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 defaultSelectedIndex = 0 9 // Do any additional setup after loading the view. 10 } 11 12 override var titlesInSwitcher: [String]{ 13 return ["test1","test2"] 14 } 15 16 override func segementSlideContentViewController(at index: Int) -> SegementSlideContentScrollViewDelegate? { 17 switch index { 18 case 0: 19 return ViewController() 20 case 1: 21 return ViewController() 22 default: 23 return ViewController() 24 } 25 } 26}
ViewControllerクラスです
Swift
1import UIKit 2import SegementSlide 3 4class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,SegementSlideContentScrollViewDelegate { 5 6 let TODO = ["牛乳を買う", "掃除をする", "アプリ開発の勉強をする"] //追加② 7 8 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 9 TODO.count 10 } 11 12 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 13 // セルを取得する 14 let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 15 // セルに表示する値を設定する 16 cell.textLabel!.text = TODO[indexPath.row] 17 return cell 18 } 19 20 21 override func viewDidLoad() { 22 super.viewDidLoad() 23 tableView.dataSource = self 24 tableView.delegate = self 25 // Do any additional setup after loading the view. 26 } 27 28 @IBOutlet weak var tableView: UITableView! 29 30 31 32}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/05 14:01
2020/12/05 22:30
2020/12/06 23:58