Вам нужно загрузить контроллер представления по инстанцированию его из раскадровки в рамках.
Вот как это сделать. Сначала начальные условия:
Предположим, что ваш фреймворк называется Coolness.
Допустим, раскадровка вашего фрейма называется CoolnessStoryboard.storyboard.
Предположим, что у вашей рамки есть класс public
под названием CoolnessViewController.
Предположим, что CoolnessStoryboard имеет сцену, контроллер вида которой является CoolnessViewController, и что это его начальный контроллер.
Затем в основном коде, который вы бы import Coolness
и представить свою CoolnessViewController из раскадровки, вы бы сказали:
let s = UIStoryboard (
name: "CoolnessStoryboard", bundle: NSBundle(forClass: CoolnessViewController.self)
)
let vc = s.instantiateInitialViewController() as! UIViewController
self.presentViewController(vc, animated: true, completion: nil)
Примечания стратегии здесь. Работайте назад от цели. Нам нужен экземпляр CoolnessViewController, который является в раскадровке. Чтобы получить это, нам нужна ссылка на эту раскадровку. Для этого нам нужно определить эту раскадровку. Как? Мы можем идентифицировать его по имени и связке, в которой он находится. Но как мы можем идентифицировать этот пакет? Мы можем идентифицировать расслоение с помощью класса в этом расслоении. У нас есть такой класс, потому что мы импортировали фреймворк (import Coolness
) и класс public
(чтобы мы могли говорить об этом).
Проблема заключается в том, что 'MainViewController()' создает контроллер вида, но не сообщает этому контроллеру, откуда его получить. Таким образом, представление пустое и черное. Вы говорите, что в вашем каркасе есть раскадровка, но вы не используете эту раскадровку. – matt
Спасибо, но как я могу использовать свою раскадровку? – just
Я покажу вам, на минутку. – matt