2017-10-28 3 views
0

Momentan erstelle ich eine Anwendung mit Deployment Target 10.2.
Ich habe ViewControllerA und ViewControllerB verfügbar.
Alle Benutzer können ViewControllerA anzeigen.
Ich würde gerne iOS 11 Benutzer ViewController B anzeigen.
Durch Antippen der Schaltfläche AR von ViewController A, ist die Verarbeitung zwischen iOS 10 und iOS 11 aufgeteilt.
Ich schreibe den folgenden Code.
Gibt es eine Möglichkeit für iOS 11-Benutzer, ARSCNView mit Deployment Target 10.2 anzuzeigen?

@IBAction func goARCameraTapped(_ sender: UIButton) { 

    if (ProcessInfo.processInfo.operatingSystemVersion.majorVersion >= 11) { 
    self.performSegue(withIdentifier: "goAR", sender: self) 
     print("iOS11") 
    } else if (ProcessInfo.processInfo.operatingSystemVersion.majorVersion <= 10) { 
     print("iOS10") 
    } 
} 

Mit Entlastungsziel 10.2.
Wenn der Benutzer von iOS 11 die Schaltfläche AR von ViewController A antippt, möchte der Benutzer von iOS 11 diese in Viewcontroller B verschieben. Nachdem der Benutzer von iOS 11 zu ViewController B gewechselt ist, möchte ich die ARSCNView anzeigen .
Der folgende Fehler wird jedoch angezeigt.
- Fehler
ARSCNView vor iOS 11,0
enter image description here

Wenn ich Depoyment Ziel auf 11,0, der obige Fehler wird nicht angezeigt, eingestellt.
Allerdings, wenn ich Deployment Target 11 setze, denke ich, dass iOS 10 Benutzer meine Anwendung nicht herunterladen können.

■ Frage
Gibt es eine Möglichkeit für iOS 11-Benutzer, ARSCNView mit dem Einsatzziel 10.2 anzuzeigen?

-Zusätzliche Notizen.
xcode9.0.1
swift4
iPhoneSE und iPhone7.

Der Code von ViewControllerB ist wie folgt.

import UIKit 
import ARkit 

class ARViewController: UIViewController, ARSCNViewDelegate { 

    @IBOutlet weak var sceneView: ARSCNView! 
    let configuration = ARWorldTrackingConfiguration() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     setupSceneView() 
    } 
    func setupSceneView() { 
     self.sceneView.showsStatistics = true 
     self.sceneView.session.run(configuration) 
     self.sceneView.delegate = self 
    } 


Antwort

0

ARSCNView von IOS 11.0 und höher unterstützt.

hinzufügen es Code statt Storyboard

Seine Verfügbarkeit hat für seine früheren Version erwähnt, bis jetzt nicht. Und es ist klar gesagt, dass seine neue Funktion für iOS 11.

Daher ist die Antwort für Ihre Frage - Es ist nicht rückwärts fähig. Abhängig von Ihren Anforderungen können Sie jedoch SceneKit als Fallback verwenden, fügen Sie ARSCNView zu Ihrem Projekt hinzu, indem Sie Code und iOS-Versionsüberprüfung verwenden.

if #available(iOS 11.0, *) { 
    // add ARKit to your view 
} else { 
    // add SceneKit to your view 
} 
Verwandte Themen