Я пытаюсь реализовать iPhone и iPad версии изящно. Они по сути являются одним и тем же контроллером, но один iPhone представлен в одном столбце tableView и iPad в коллекционной коллекции multi-columnView.UITableView && UICollectionView в одном контроллере?
Вот варианты я думал:
Один ViewController, который просит другой DataSource и иной делегат для Tableview против CollectionView. Я не думал, что этот вариант на всем пути. Похоже, что это может стать слишком сложным.
Один baseViewController, а затем 2 подкласса, один с tableView и один с CollectionView. Подобно опции №1, но с использованием подклассов. Вариант № 1 является более чистым, но это было бы проще реализовать.
Просто используйте CollectionView для обоих, но используйте разные UICollectionViewFlowLayouts. Это был последний вариант, о котором я думал, и, пожалуй, самый лучший вариант, но мне интересно, есть ли причина, почему №1 или №2 могут быть лучше.
Вы также можете создать два разных монитора просмотра и нажать соответственно для iPhone и iPad, ваш второй подход выглядит аналогично этому. Но с оптимизированным кодом –
Вы также можете использовать те же методы делегатов для обработки нескольких UITableViews и выбрать, что делать, на основе того, какой экземпляр TableView передается через параметр. – clearlight
Я бы предпочел третий вариант, так как будет легче управлять и понимать. – atulkhatri