Отличный урок! Спасибо! Почему-то в самом первом примере у меня tableViewController инициализировался без tableView. Не мог понять в чем дело, пока не создал отдельное tableView и не назначил его tableViewController let tableViewController = UITableViewController(style: .plain) func createTableView() { let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height)) tableViewController.tableView = tableView tableViewController.tableView.register( UITableViewCell.self, forCellReuseIdentifier: cellIdentifier) tableViewController.tableView.delegate = self tableViewController.tableView.dataSource = self }
У кого на ios 14 не добавляется myTableViewController.tableView на view, проинициализируйте tableView этой строчкой в функции createTableView() myTableViewController.tableView = UITableView(frame: view.bounds, style: .plain)
Хочу обратить внимание на пару моментов: - [9:00][строка №24] - интересный момент, на вьюху добавляется класс UITableView, а если запустить приложение и посмотреть структуру UI, то выясняется, что на вьюхе лежит не просто таблица, а UITableViewController, а в нём наша таблица (это продолжение истории о том, что Xcode не даёт просто так кинуть на обычный контроллер статическую таблицу). Получается динамическую таблицу тоже не даёт кинуть. - [29:24] Чтобы ещё больше разгрузить контроллер, можно метод refresh() вызывать из класса ячейки. Для этого у класса ячейки создать свойство типа Model и вызвать метод refresh() используя событие didSet{}. Таким образом контроллер только передаст ячейке данные модели, остальное не его дело =) Женя, спасибо за урок!
Для тех у кого данные таблицы выходят за рамки view делаем следующее: override func viewDidLoad() { super.viewDidLoad() createTableView() addChild(tableViewController) view.addSubView(tableViewController.tableView) tableViewController.didMove(toParent: self) }
Спасибо за материал. Чувствуешь себя увереннее, когда замечаешь ваши ошибки(скорее опечатки) в коде, хотя я не понимаю как можно и кодить и говорит одновременно. Респект. Но больше всего меня удивляет, как вы так быстро находите ошибку. Я могу убить и 30 минут, на поиск опечатки.
Я это прекрасно осознаю. Большое вам спасибо за эту работу, для меня остается загадкой ваша мотивация. Если только сделать мир вокруг лучше. Более того, я готов платить за материал, и даже являлся подписчиком Ивана Акулова, но подача мне не понравилась, не объясняется суть, а просто предлагается запомнить последовательность действий. P.S. Основной посыл, предыдущего subj - как вы так быстро находите опечатки????
Не знаю от куда ты берешь на такое детальное объяснение, но ты ТОПЧИК. И хватит извиняться, ты уже извинился на 200 лет вперед. Те перед кем надо было извяняться ставят дизы и уже не смотрят уроки)))
вот тут некоторые продвинутые юзеры критикуют твой код что вместо class ViewController: UIViewController { надо было class ViewController: UITableViewController { и было бы меньше танцев с бубнами) как тебе такая критика?
@@theswiftdevelopers1301 в принципе контроллер в контроллер это плохая архитектура они так не должны использоваться контроллер это экран который ты видишь вещи должны использоваться очевидно
Очень жду API и CoreData
Отличный урок! Спасибо!
Почему-то в самом первом примере у меня tableViewController инициализировался без tableView. Не мог понять в чем дело, пока не создал отдельное tableView и не назначил его tableViewController
let tableViewController = UITableViewController(style: .plain)
func createTableView() {
let tableView = UITableView(frame: CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height))
tableViewController.tableView = tableView
tableViewController.tableView.register(
UITableViewCell.self, forCellReuseIdentifier: cellIdentifier)
tableViewController.tableView.delegate = self
tableViewController.tableView.dataSource = self
}
Спасибо большое тебе, не пришлось гуглить в поисках ответа :)
еще не забудьте удалить view.addSubview(tableViewController.tableView) из функции viewDidLoad
У кого на ios 14 не добавляется myTableViewController.tableView на view, проинициализируйте tableView этой строчкой в функции createTableView()
myTableViewController.tableView = UITableView(frame: view.bounds, style: .plain)
я делаю через сториборд и у меня конкретно эта проблем, пытаюсь разобраться, пока не получается.
@@ZlobinPeter Получилось исправить?
Да, но я не помню вопроса )
Хочу обратить внимание на пару моментов:
- [9:00][строка №24] - интересный момент, на вьюху добавляется класс UITableView, а если запустить приложение и посмотреть структуру UI, то выясняется, что на вьюхе лежит не просто таблица, а UITableViewController, а в нём наша таблица (это продолжение истории о том, что Xcode не даёт просто так кинуть на обычный контроллер статическую таблицу). Получается динамическую таблицу тоже не даёт кинуть.
- [29:24] Чтобы ещё больше разгрузить контроллер, можно метод refresh() вызывать из класса ячейки. Для этого у класса ячейки создать свойство типа Model и вызвать метод refresh() используя событие didSet{}. Таким образом контроллер только передаст ячейке данные модели, остальное не его дело =)
Женя, спасибо за урок!
Евгений, спасибо больше, было бы круто от тебя API и CoreData
Спасибо огромное за курс! Действительно уникальные данные и подход! Спасибо за Ваш труд!
Я ваши уроки все скачал на диск чтобы были под рукой:)
Для тех у кого данные таблицы выходят за рамки view делаем следующее:
override func viewDidLoad() {
super.viewDidLoad()
createTableView()
addChild(tableViewController)
view.addSubView(tableViewController.tableView)
tableViewController.didMove(toParent: self)
}
Спасибо, ждем дольнейших лекций
сл готова)
Спасибо за материал.
Чувствуешь себя увереннее, когда замечаешь ваши ошибки(скорее опечатки) в коде, хотя я не понимаю как можно и кодить и говорит одновременно. Респект.
Но больше всего меня удивляет, как вы так быстро находите ошибку. Я могу убить и 30 минут, на поиск опечатки.
Антон, 50 часов ! учебного материала , вы только вдумайтесь! И это вам досталось совершенно бесплатно;)
Я это прекрасно осознаю. Большое вам спасибо за эту работу, для меня остается загадкой ваша мотивация. Если только сделать мир вокруг лучше.
Более того, я готов платить за материал, и даже являлся подписчиком Ивана Акулова, но подача мне не понравилась, не объясняется суть, а просто предлагается запомнить последовательность действий.
P.S. Основной посыл, предыдущего subj - как вы так быстро находите опечатки????
Anton Rubenchik , очень просто найти когда понимаешь что написал
Акулов скорее вредитель чем учитель. А тут у человека дар от Бога.
Спасибо большое за урок !
Если у вас не отображается первая таблица, попробуйте задать constrain. Можете использовать следующее:
tableViewController.tableView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
tableViewController.tableView.topAnchor.constraint(equalTo: view.topAnchor),
tableViewController.tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
tableViewController.tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
tableViewController.tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor)
])
Спасибо)
Спасибо за твой труд !
Прям очень крутой урок!!!!
Не знаю от куда ты берешь на такое детальное объяснение, но ты ТОПЧИК. И хватит извиняться, ты уже извинился на 200 лет вперед. Те перед кем надо было извяняться ставят дизы и уже не смотрят уроки)))
Thank
Пожалуйста запилить курс по CoreData!
рпро юзер дефолтс очень круто!спасибо
Спасибо, хорошое объяснение
Спасибо за видео! Ждем еще!
Спасибо тебе большое
Спасибо
Спасибо!
Крутые уроки!
Отлично!
Евгений, как создать статическую таблицу кодом?
А как сделать сохранение автоматическим, без нажатия на кнопку? Здравствуйте.
13:09 как создать IndexPath
Сними видео об API Swif
Евгений, когда будет курс по БД? Будет ли вообще? Или не ждать?
Stolenhen , да уроков вагон и тележка по бд в ютубе)
@@theswiftdevelopers1301 хочется понятных и качественных от Вас, Вы же сенсей :/
Вооот..... да......
вот тут некоторые продвинутые юзеры критикуют твой код
что вместо class ViewController: UIViewController {
надо было class ViewController: UITableViewController {
и было бы меньше танцев с бубнами)
как тебе такая критика?
КОФЕ МОФЕ , она не конструктивна так как не озвучены аргументы
@@theswiftdevelopers1301 в принципе контроллер в контроллер это плохая архитектура
они так не должны использоваться
контроллер это экран который ты видишь
вещи должны использоваться очевидно
КОФЕ МОФЕ , там не контролер а табл вью это вьюха
@@theswiftdevelopers1301 +
А что будет после UIKit ?
Писал все буква в букву и не работает Thear 1: signal SIGABRT
спасибо
Большое спасибо