単体の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
import UIKit import SegementSlide class BaseViewController: SegementSlideDefaultViewController { override func viewDidLoad() { super.viewDidLoad() defaultSelectedIndex = 0 // Do any additional setup after loading the view. } override var titlesInSwitcher: [String]{ return ["test1","test2"] } override func segementSlideContentViewController(at index: Int) -> SegementSlideContentScrollViewDelegate? { switch index { case 0: return ViewController() case 1: return ViewController() default: return ViewController() } } }
ViewControllerクラスです
Swift
import UIKit import SegementSlide class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,SegementSlideContentScrollViewDelegate { let TODO = ["牛乳を買う", "掃除をする", "アプリ開発の勉強をする"] //追加② func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { TODO.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // セルを取得する let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) // セルに表示する値を設定する cell.textLabel!.text = TODO[indexPath.row] return cell } override func viewDidLoad() { super.viewDidLoad() tableView.dataSource = self tableView.delegate = self // Do any additional setup after loading the view. } @IBOutlet weak var tableView: UITableView! }
まだ回答がついていません
会員登録して回答してみよう