#ios #swift
#iOS #swift
Вопрос:
Я создаю представление таблицы с возможностью расширения / свертывания.
Я использую раскадровку. И я также проверил раскадровку.
Проблем со сборкой нет.
Но это не работает на эмуляторах.
import UIKit
class NoticeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var noticeTableView: UITableView!
var imageArr = ["cm_contents_01", "cm_contents_02", "cm_contents_03"]
var nameArr = ["Notice 1", "Notice 2", "Notice 3"]
var selectedIndex = -1
var isCollapce = false
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
noticeTableView.estimatedRowHeight = 3000
noticeTableView.rowHeight = UITableView.automaticDimension
}
...
Здесь ошибка.
noticeTableView.estimatedRowHeight = 3000
И подключение к раскадровке.
Когда это было сделано отдельно, оно было выполнено хорошо, но оно объединено с другими проектами, поэтому возникает ошибка.
Unexpectedly found nil while implicitly unwrapping an Optional value
Пожалуйста, скажите мне, почему возникает ошибка.
Комментарии:
1. Как вы представляете
NoticeViewController
?2. Я использую навигационный контроллер и боковое меню.
3. Можете ли вы показать представленный код
NoticeViewController
?4. Вероятно, вы не создаете контроллер представления из раскадровки.
Ответ №1:
Вы создаете свой собственный экземпляр NoticeViewController
:
private let noticeController = NoticeViewController()
Но вы тоже используете раскадровку! Вместо этого вам нужно получить правильное NoticeViewController
представление о вашей раскадровке, например:
class ViewController: UIViewController, MenuControllerDelegate {
private var sideMenu: SideMenuNavigationController?
private var noticeController: NoticeViewController?
....
override func viewDidLoad() {
super.viewDidLoad()
let storyboard = UIStoryboard(name: "Main", bundle: nil)
self.noticeController = storyboard.instantiateViewController(withIdentifier: "YourControllerId"
}
и затем оттуда у вас будет правильный экземпляр вашего NoticeViewController
. Сбой, который вы испытываете, буквально означает tableView
, что объект отсутствует (nil).