2017-05-18 16 views
-1

저는 스위프트 3으로 xcode에서 앱을 만들고 있으며 앱에 여러 변수가 있습니다. 특정 변수가 값에있을 때 테스트하는 앱을 원한다면 어떤 뷰에 있더라도 새로운 뷰 컨트롤러로 이동하십시오. 나는 segues를 사용할 수 있다는 것을 알고 있지만, 많은 관점에서 이것은 지저분해진다. 내가 코드를 사용하거나 훨씬 더 간단하게 사용할 수있는 것이 있습니까? 감사합니다.새 뷰 컨트롤러로 강제 이동 (세그)

+1

귀하의 변수의 값이있는 조건에서 변수의 값이 모두 viewControllers에 대한 동일하게 유지됩니다? –

+0

예 변수가 동일 할 것이며 모든 뷰에 대해 업데이트됩니다. –

답변

0

속성의 didSet을 사용하고 뷰 컨트롤러를 제공 할 수 있습니다.

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

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

내가보기 컨트롤러 이름을 현재 비트에 배치하는 코드를 시도하면 "TestViewController.type '유형의 값을 예상 인수 유형'UIViewController '로 변환 할 수 없습니다. " –

0

당신은 UIViewControllerextension과 변수의 값 변경 간단한 푸시/발표 할 때마다 거기에 만들 수 있습니다 ViewController이 필요합니다.

0

당신은 스토리 보드 코드 줄하려고 사용하는 경우

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()