Я МЕДЛЕННО изучал, как создавать приложения для iOS с Swift
, и кто-то прислал мне эту статью, почему он делает это профессионально: Пример использования раскадровок на iOS .Хотя я принял подход к обучению программному созданию приложений для iOS, я верю, что раскадровки имеют свое место в разработке для iOS.Я пытаюсь реализовать идею Marin Benčević
, имея новую раскадровку для каждого представления с собственным ViewController
.Однако у меня проблемы с подключением.Я постоянно сталкиваюсь с этой же ошибкой:
Failed to instantiate the default view controller for UIMainStoryboardFile 'LoginViewController' - perhaps the designated entry point is not set?
Теперь моя файловая структура немного отличается, так как я хочу, чтобы мои представления были отделены от контроллеров, но как показано:
LoginViewController.swift:
class LoginViewController: UIViewController {
override func viewDidLoad() {
self.view.backgroundColor = UIColor.green
let vc = LoginViewController.instance()
self.present(vc, animated: true, completion: nil)
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
AppDelegate.swift:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
self.window = UIWindow(frame: UIScreen.main.bounds)
let loginStoryboard = LoginViewController()
self.window?.rootViewController = loginStoryboard
self.window?.makeKeyAndVisible()
return true
}
UIStoryboardExt.swift:
import UIKit
extension UIStoryboard {
func initialViewController<T: UIViewController>() -> T {
return self.instantiateInitialViewController() as! T
}
}
UIViewControllerExt.swift:
import UIKit
extension UIViewController {
class func instance() -> Self {
let storyboardName = String(describing: self)
let storyboard = UIStoryboard(name: storyboardName, bundle: nil)
return storyboard.initialViewController()
}
}
info.plist:
Main storyboard file base name: LoginViewController
В общем, мне интересно, как я могуподключите UIViewController
к View.storyboard
программным способом, не используя вкладку свойств раскадровки.Я пробовал так много разных вариантов, как это сделать, но я не могу понять это.
Вот был StackOverflow
Вопрос, который я тоже пытался заставить работать, но не мог: StackOverflow
РЕДАКТИРОВАТЬ
Наряду с тем, что Кристиан Абелла сказал, мне также нужно было установить класс, подобный объекту раскадровки