2016-08-16 2 views
-1

은 내가 UIAlertController 제시 할 때 다음과 같은 경고가 점점 계속 :스위프트 - 경고 prepareForSegue 방법 내부 경고를 제시 할 때

2016년 8월 16일 13 : 29 : 48.138에 MyProject를 [602 : 98207은]과 pushViewController : 애니메이션 : 전화 기존 전환 또는 발표가 진행되는 동안 네비게이션 스택은 업데이트되지 않습니다.

여기에 코드의 관련 부분입니다 :

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "toUserData" && didSelect 
    { 
     let vc:UserDataViewController = segue.destinationViewController as! UserDataViewController 
     vc.unitIndex = self.selectedIndex - 1 
    } 
    else 
    { 
     self.showAlert() 
     return 
    } 

} 

    func showAlert() 
    { 
     let alert = UIAlertController(title: "Error", message: "Are you sure that you set units properly?", preferredStyle: .Alert) 
     alert.addAction(UIAlertAction(title: "OK", style: .Default) { _ in }) 
    self.presentViewController(alert, animated: true, completion: nil) 
    } 

} 

내가 다른 프로젝트에 전에 구조의이 종류를 사용하고 나는 그런 warining을 받고 기억하지 않습니다.

또한 경고를 표시하는 것이 전환에 관한 다른 작업을 방해하지 않기 때문에 나는 왜 내가 그것을 얻는 지 알지 못합니다. 이 SEGUE을 준비

override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool { 

    if identifier == "toUserData" && didSelect 
    { 
     return true 
    } 
    else 
    { 
     self.showAlert() 
     return false 
    } 
} 
+1

: 사전에

덕분에 –

+0

그 시점에서'assert()'가 아마도 더 나은 동작 일 것입니다. – Paulw11

답변

1

나는 모든 것이 SEGUE을 수행하기 위해 모든 설정되어있는 경우,이 사물의 종류는 shouldPerformSegueWithIdentifier 방법을 사용하여 수행해야합니다 확인하는 잘못된 방법을 사용 이름이 이미 우리에게 어떤 일이 일어날 것이라고 말하고 있습니다, 왜 당신은 어떤 다른 것의 꼭대기에 뭔가를 제시하려고합니까?