Когда приложение запускается, реализуется следующая структура:
Контроллер навигации -> Контроллер панели вкладок -> Контроллер представления
Контроллер просмотра имеет UITableView
I заметил, что когда отображается контроллер представления, я получаю UITableViewAlertForLayoutOutsideViewHierarchy без видимой причины. Если я изменю структуру на это:
Контроллер навигации -> Просмотреть контроллер
Больше нет предупреждений. Однако мне нужен этот контроллер панели вкладок. Кто-нибудь сталкивался с подобной проблемой?
Это код View Controller:
enum ChatsCellItemType{
case group(GroupSyncModel)
}
struct GroupCellItem{
let type : ChatsCellItemType
}
class ChatsVC: TV2AbstractVC {
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var constContentViewTop: NSLayoutConstraint!
var chatsService = ChatsService()
var sections : [[GroupCellItem]] = [
[]
]
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
sections = [
chatsService.fetchMyGroups().compactMap{GroupCellItem(type: .group($0))}
]
}
}
private typealias TableView = ChatsVC
extension TableView : UITableViewDelegate, UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
guard section < sections.count else {return 0}
return sections[section].count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard indexPath.section < sections.count else {return UITableViewCell()}
guard indexPath.row < sections[indexPath.section].count else {return UITableViewCell()}
let item = sections[indexPath.section][indexPath.row]
switch item.type {
case .group(let model):
let cell = tableView.dequeueReusableCell(withIdentifier: "ChatGroupCell") as! ChatGroupCell
cell.primaryKey = model.groupId
return cell
}
}
}