@@ -119,7 +119,7 @@ private class StoryboardParserDelegate: NSObject, NSXMLParserDelegate {
119119 var reusables : [ Reusable ] = [ ]
120120
121121 // State
122- var currentViewController : ( String , Storyboard . ViewController ) ?
122+ var currentViewController : Storyboard . ViewController ?
123123
124124 @objc func parser( parser: NSXMLParser , didStartElement elementName: String , namespaceURI: String ? , qualifiedName qName: String ? , attributes attributeDict: [ String : String ] ) {
125125 switch elementName {
@@ -145,7 +145,7 @@ private class StoryboardParserDelegate: NSObject, NSXMLParserDelegate {
145145 let type = customType ?? Type . _UIStoryboardSegue
146146
147147 let segue = Storyboard . Segue ( identifier: segueIdentifier, type: type, destination: destination, kind: kind)
148- currentViewController? . 1 . addSegue ( segue)
148+ currentViewController? . addSegue ( segue)
149149 }
150150
151151 case " image" :
@@ -166,7 +166,7 @@ private class StoryboardParserDelegate: NSObject, NSXMLParserDelegate {
166166
167167 default:
168168 if let viewController = viewControllerFromAttributes ( attributeDict, elementName: elementName) {
169- currentViewController = ( elementName , viewController)
169+ currentViewController = viewController
170170 }
171171
172172 if let reusable = reusableFromAttributes ( attributeDict, elementName: elementName) {
@@ -176,9 +176,20 @@ private class StoryboardParserDelegate: NSObject, NSXMLParserDelegate {
176176 }
177177
178178 @objc func parser( parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String? , qualifiedName qName: String? ) {
179- if let currentViewController = currentViewController where elementName == currentViewController. 0 {
180- viewControllers. append ( currentViewController. 1 )
181- self . currentViewController = nil
179+
180+ // We keep the current view controller open to collect segues until the closing scene:
181+ // <scene>
182+ // <viewController>
183+ // ...
184+ // <segue />
185+ // </viewController>
186+ // <segue />
187+ // </scene>
188+ if elementName == " scene " {
189+ if let currentViewController = currentViewController {
190+ viewControllers. append ( currentViewController)
191+ self . currentViewController = nil
192+ }
182193 }
183194 }
184195
0 commit comments