2015-06-11 2 views
0

У меня есть два контроллера просмотра, один подкласс UIViewControllerПодкласс из подкласса UIViewController с раскадровки не работает, кроме

class MGStatusViewController: UIViewController 

с раскадровки идентификатором «MGStatusViewController». (С некоторыми UIButton с)

И другой подкласс **MGStatusViewController**

class MGStatusDetailViewController: MGStatusViewController 

с идентификатором раскадровки MGStatusDetailViewController

Когда я использую это так:

self.storyboard?.instantiateViewControllerWithIdentifier("MGStatusDetailViewController") as? MGStatusDetailViewController 

Там нет контроллеров (в UIButton) из файла storyboad MGStatusViewController в.

Как я могу достичь этого? Благодаря!

+0

Вы были в состоянии решить эту проблему? – Miknash

+0

Я использовал ContainerView, чтобы сделать это, но поскольку @NickCatib descriped наследует от контроллеров представлений, используйте их как абстрактный, я думаю, что это правильно. –

ответ

0

Когда вы наследуете свой настраиваемый контроллер представлений - в этом примере MGStatusViewController вы наследуете код позади и логику. Вы можете подключить свои розетки для MGStatusDetailViewController с помощью MGStatusViewController. И это все. Вы не можете наследовать элементы UIView из раскадровки и ожидать их отображения.

Что вы можете сделать, так это создать MGStatusDetailViewController взглянуть на него и добавить его в MGStatusViewController. Или вы можете создать встроенный контроль и встраивать MGStatusDetailViewController в MGStatusViewController. Таким образом, у вас будут все элементы управления из раскадровки и будут представлены ваши MGStatusDetailViewController

Короче говоря, наследование не принимает Просмотры из раскадровки, только код с этого контроллера.

Кроме того, когда вы наследуете контроллеры представлений, вы используете их как абстрактный. Вы создаете некоторую логику, которая будет использоваться на других контроллерах представления, но вы не создаете фактический интерфейс.

0

Почему вы используете «MGStatusDetailViewController» идентификатор раскадровки, если вы установили идентификатор как «MGStatusViewController»

Storybord ID и класс Diferent вещи.

Вы можете попробовать с этим -

self.storyboard?.instantiateViewControllerWithIdentifier("MGStatusViewController") as? MGStatusDetailViewController 
+0

Я пробовал, это не работает. –

Смежные вопросы