Upcast ViewControllers для сегов - PullRequest
       27

Upcast ViewControllers для сегов

0 голосов
/ 08 декабря 2018

У меня есть два представления, A и B, оба наследуются от C.

В раскадровке я определяю UIViewController как тип C.

Другой вид, скажем, D, имеетдва перехода к C.

Я хочу иметь возможность разыграть цель в соответствии с соответствующей последовательностью:

if segue.identifier = "ToA"
{
   // Load view A
}
if segue.identifier = "ToB"
{
   // Load view B
}

Я пробовал, и приведение не удалось.Возможно ли это?

Я нашел еще одну ветку на SO, в которой говорится, что это не так, но там был ответ, в котором говорилось, что это возможно.Как я могу заставить этот кастинг работать?

Или мне просто соединить А и В вместе?Я действительно не хочу этого делать.

1 Ответ

0 голосов
/ 08 декабря 2018

Это невозможно, так как наследование не работает так.A и B также являются C. Но C не является ни A, ни B. И C - это то, что инициализируется и проталкивается / представляется / внедряется при выполнении ваших сегментов.

Вам необходимо создать два разных ViewController A и B вваша раскадровка.Они могут иметь некоторые соединения IBOutlet / IBAction с вашим файлом C.swift.

...