2017-05-18 6 views
-1

Ich mache eine App auf xcode mit swift 3 und mache die App mehrere Variablen haben. Ich möchte, dass meine App prüft, ob eine bestimmte Variable einen Wert hat, und zu einem neuen Ansichtscontroller wechseln, unabhängig davon, in welcher Ansicht Sie sich gerade befinden. Ich weiß, dass ich Übergänge verwenden kann, aber mit vielen Ansichten wird das unordentlich. Gibt es etwas, das ich verwenden kann, das nur Code verwendet oder viel einfacher ist? DankeForce Move zu einem neuen View-Controller (ohne Überleitung)

+1

Wert wird Ihre Variable, auf dem Zustand und den Wert der Variablen für alle Viewcontrollers gleich bleiben? –

+0

Ja die Variable wird gleich sein und über alle Ansichten hinweg aktualisiert werden –

Antwort

0

Sie können didSet der Eigenschaft verwenden und den View-Controller präsentieren.

class TestVC : UIViewController { 
    var variable: Int = 10 { 
     didSet { 
      if variable == 20 { 
       present(someVC, animated: true) 
      } 
     } 
    } 
} 

class SomeVC : UIViewController { 
    func didFinishWhatever() { 
     dismiss(animated: true) 
    } 
} 
+0

Wenn ich diesen Code versuche, wo ich den View-Controller-Namen in das aktuelle Bit setze, heißt es "kann den Wert vom Typ 'TestViewController.type' nicht in den erwarteten Argumenttyp 'UIViewController' konvertieren " –

0

Sie können eine extension von UIViewController und dort machen, wann immer Wert Ihre Variable Änderung einfache Push/Ihre ViewController erforderlich präsentieren.

0

Wenn Sie diese Zeilen Code ein Storyboard versuchen verwenden:

self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let initialViewController = storyboard.instantiateViewControllerWithIdentifier("SomeVCIdentifier") 
self.window?.rootViewController = initialViewController 
self.window?.makeKeyAndVisible() 
Verwandte Themen