У меня есть программа, которая создает UIViewControllers в UISplitView в зависимости от того, какая строка выбрана в UITableView. Например, если пользователь щелкает строку под названием «Настройки», программа создает контроллер представления с именем settingsTableVC (который отображается на левой панели UISplitViewController) и контроллер подробного представления с именем settingsDetailVC, который отображается на правой панели. .
Логика работает нормально, но у меня есть много кода для каждой строки в исходном tableView, для создания и настройки каждого ViewController и их общедоступных свойств, и мне кажется, что более простым способом было бы определить два общих ViewController, а затем выполнить приведение их к правильному типу в методе. Таким образом, я могу определить их общедоступные свойства в общем (поскольку все они в основном являются одними и теми же свойствами, указателями на masterViewController и tableViewController)
E.G.
UIViewController *leftController = nil;
UIViewController *rightController = nil;'
Затем в didSelectRowAtIndexPath:
leftController = [[SettingTableViewController alloc]init];
rightController = [[SettingsDetailViewController alloc]init];
leftController.masterVC = self;
rightController.tableVC = leftController;
Однако компилятор предупреждает: «UIViewController не объявляет свойство masterVC».
Как я могу изменить класс этих ViewController во время выполнения?