У меня есть массив UIButton
с уникальным значением tag
.Когда данная кнопка нажата, я хочу загрузить и представить UIViewController
, который также хранится в массиве равной длины.
Представляемые UIViewController
являются подклассами подкласса UIViewController
:
class AViewController: UIViewController {}
class BViewController: AViewController {}
class CViewController: AViewController {}
class DViewController: AViewController {}
// ... etc.
Я пытался сохранить массив подклассов AViewController
, используя следующее:
private var array: [AViewController] = [BViewController.self, CViewController.self, DViewController.self]
, но я получаю ошибку Невозможно преобразовать значение типа '[BViewController] .Type 'к указанному типу' [AViewController] ' для первого элемента.
Затем я представлю BViewController
(например), используя следующее:
let ViewController = array[button.tag].self
var viewController: AViewController
viewController = ViewController.init()
viewController.transitioningDelegate = self
viewController.modalPresentationStyle = .custom
present(viewController, animated: true)
Пожалуйста, дайте мне знать, если это неправильный мыслительный процесс для того, чтобы сделать что-то подобное, пожалуйста, и спасибо за любую помощь.