2014-07-07 1 views
3

내 앱에서 "연결"버튼을 만들고 싶습니다. 그리고 당신이 그것을 틀 때, 당신은 정확한 로그인을 가지고 있다면 새로운 페이지를 열 것입니다.Swift에서 조건부 성공

하지만 저는 단편을 실행 취소 할 수 없다는 것을 읽었습니다. 수동으로 호출해야한다고 생각합니다. 아이디어가 있습니까? 자격 증명이 ViewController에 다음과 같은 방법으로 확인

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject) { 
    if checkLog == true 
    { 
    //finish 
    } 
    else 
    { 
    // undo 
    } 
} 

@IBAction func ConexTAP(sender: UIButton) 
{ 
//check login 
} 

답변

12

당신은 할 수 있습니다 :

대안
func shouldPerformSegueWithIdentifier(_ identifier: String!, 
           sender: AnyObject!) -> Bool 

, 당신이 작업에 UIButton을 결합 할 수

나는 여전히이 같은 시도 보기 컨트롤러에서 여기에서 검사를 수행 한 다음 코드별로 세그 (segue)를 트리거하십시오.

1 단계 :

+0

고마워요! 코드로 세그를 트리거하는 법을 보여 주시겠습니까? – 1L30

+3

'performSegueWithIdentifier ("segueName", 보낸 사람 : 자기)를 사용하십시오' – mxb

2

스위프트에서는으로 진행할 수 있습니다 ViewControllerB에 ViewControllerA에에서 SEGUE를 삽입합니다. Segue는 ViewControllerA 자체에서 시작해야하며 Button과 같은 컨트롤에서는 시작하지 않아야합니다.

2 단계 : 스토리 보드에서 segue에게 고유 한 식별자를 부여하십시오. 예 : seageFromAtoB

3 단계 : ViewControllerforA.swift 쓰기에서 :

if(condition == true) { 
    self.performSegueWithIdentifier("seageFromAtoB", sender: self) 
} 

당신이 다음 예외를 던질 수 performSegueWithIdentifier를 사용하여 다른 스레드에서 일부 작업을 수행하는 경우. 이 오류가 발생하면

당신은 사용한다 : 이것은 특정 조건 ViewControllerB하는 ViewControllerA에에서 SEGUE을 수행합니다

if(condition==true){ 
     NSOperationQueue.mainQueue().addOperationWithBlock { 
      self.performSegueWithIdentifier("seageFromAtoB", sender: self) 
     } 
} 

.