Я использую разные раскадровки для разных прецедентов. Мой вопрос в том, как я могу создать экземпляр раскадровки, контроллер представления по его идентификатору раскадровки и подключить его к реальному классу viewcontroller?Как использовать несколько раскадровки, определенных в сборках?
Вот где я сейчас:
public dynamic func loadingViewController() -> AnyObject {
return TyphoonDefinition.withClass(LoadingViewController.self) {
(definition) in
definition.injectProperty("presenter", with: self.loadingPresenter())
}
// return TyphoonDefinition.withFactory(self.storyboard(), selector: "instantiateViewControllerWithIdentifier:") {
// (factory) in
//
// factory.injectParameterWith("LoadingViewController")
//
// }
}
public dynamic func storyboard() -> AnyObject {
return TyphoonDefinition.withClass(TyphoonStoryboard.self) {
(definition) in
definition.useInitializer("storyboardWithName:factory:bundle:") {
(initializer) in
initializer.injectParameterWith("Loading")
initializer.injectParameterWith(self)
initializer.injectParameterWith(NSBundle.mainBundle())
}
definition.scope = TyphoonScope.Singleton
}
}
В этом примере имя раскадровка является «Загрузка», то ViewController является «LoadingViewController» и идентификатор раскадровки также 'LoadingViewController.
Любая помощь (или пример кода) будет оценена!
Вот как выглядит раскадровка: [Раскадровка] (http://home.sch.bme.hu/~abicska/upload/typhoon_2.png), и вот как выглядит работающее приложение: [App] (http://home.sch.bme.hu/~abicska/upload/typhoon_1.png). Таким образом, «LoadViewController» не загружается. Я действительно не знаю, где я должен назвать функцию раскадровки(), упомянутую выше. – abelorosz
На самом деле я не могу найти, где проблема, так как вы можете увидеть, что раскадровка загружена и представлен навигационный контроллер, но контроллер rootViewController контроллера навигации не установлен, насколько я могу видеть – abelorosz
@ JasperBlues в порядке, поэтому я прошел образец кода снова. Не могли бы вы рассказать мне, как я могу установить фабрику определения класса в раскадровку? Поскольку параметр 'definition.factory' уже давно исчез. Пример кода основан на Typhoon 2, и они написали что-то вроде этого: 'definition.factory = [определение раскадровки]' Спасибо – abelorosz