diff --git a/iOS/issue-tracker/Extension/UIViewController+Instantiate.swift b/iOS/issue-tracker/Extension/UIViewController+Instantiate.swift index 69090dff4..ab9b59984 100644 --- a/iOS/issue-tracker/Extension/UIViewController+Instantiate.swift +++ b/iOS/issue-tracker/Extension/UIViewController+Instantiate.swift @@ -9,11 +9,14 @@ import UIKit extension UIViewController { - static func instantiate(name: String, bundle: Bundle? = nil) -> Self { + static func instantiate(name: String, bundle: Bundle? = nil) -> Self? { let fullName = NSStringFromClass(self) + if fullName.components(separatedBy: ".").count < 1 { + return nil + } let className = fullName.components(separatedBy: ".")[1] let storyboard = UIStoryboard(name: name, bundle: bundle) - return storyboard.instantiateViewController(withIdentifier: className) as! Self + return storyboard.instantiateViewController(withIdentifier: className) as? Self } } diff --git a/iOS/issue-tracker/IssueList/IssueCoordinator.swift b/iOS/issue-tracker/IssueList/IssueCoordinator.swift index d75c076ae..5fdea0c12 100644 --- a/iOS/issue-tracker/IssueList/IssueCoordinator.swift +++ b/iOS/issue-tracker/IssueList/IssueCoordinator.swift @@ -17,8 +17,7 @@ class IssueCoordinator: NSObject, Coordinator { } private func createIssueListVC() { - guard let issueListVC = UIStoryboard(name: StoryBoardName.IssueList.description, bundle: nil) - .instantiateViewController(withIdentifier: IssueListViewController.reuseIdentifier) as? IssueListViewController else { + guard let issueListVC = IssueListViewController.instantiate(name: StoryBoardName.IssueList.description) else { return } @@ -30,8 +29,7 @@ class IssueCoordinator: NSObject, Coordinator { } func pushEditView() { - guard let issueEditVC = UIStoryboard(name: StoryBoardName.IssueEdit.description, bundle: nil) - .instantiateViewController(withIdentifier: IssueEditViewController.reuseIdentifier) as? IssueEditViewController else { + guard let issueEditVC = IssueEditViewController.instantiate(name: StoryBoardName.IssueEdit.description) else { return } issueEditVC.coordinator = self