2016-12-20 2 views
1

Я добавил подпроект в свой проект Xcode и добавил его в качестве целевой зависимости. Теперь я хочу использовать контроллер вида в раскадровке, расположенной в этом подпроекте. Мне интересно, возможно ли это и как создать экземпляр контроллера представления из этого подпроекта в ваш основной проект.Как вы вызываете/используете раскадровку, расположенную в подпроекте

Вызов

let storyboard = UIStoryboard(name: "Calculator", bundle: nil) 
let calculatorViewController = storyboard.instantiateViewController(withIdentifier: "calculatorViewController") as! CalculatorViewController 
self.present(calculatorViewController, animated: false, completion: nil) 

не работает, так как раскадровка «Калькулятор» в подпроекта. Я использую swift 3.

ответ

1

Я думаю, проблема в том, что раскадровка Calculator не находится в главном комплекте. Именно там среда выполнения пытается ее найти, когда вы передаете nil для пакета в инициализаторе UIStoryboard.

Что могло бы работать, если вы передадите в комплекте для одного из классов, которые содержатся в раскадровке:

let storyboard = UIStoryboard(name: "Calculator", bundle: Bundle(for: calculatorViewController.self)) 
+0

я попробовал, что хорошо, но проект не находит файл CalculatorViewController.swift , Когда вы нажмете cmd-click, он обнаруживает, что это просто отлично. Это неразрешенный идентификатор –

+0

Добавили ли вы дополнительный проект в качестве зависимости от вашего основного проекта? – JAL

+0

Да, есть ли заявление об импорте, которое я бы пропустил? Я также добавил Calculator.app как встроенную фреймворк и включил его в ресурсы набора экземпляров –