2016-07-15 2 views
0

두 번째 viewController에 단추가 있습니다. 두 번째 단추를 닫은 후 두 번째 viewController을 닫고 첫 번째보기 컨트롤러로 돌아가서 바로 함수를 호출합니다. 그 안에는 ViewController 스위프트 파일이 들어 있습니다.두 번째보기에서 첫 번째보기의 첫 번째 기능

어떻게 할 수 있습니까? 세그에?

+0

당신은 1의 ViewController를 설정할 수는 2 뷰 컨트롤러의 속성을 위임입니다 코딩. 버튼을 누르면 첫번째 뷰 콘트롤러에 위임 함수를 호출합니다. – larva

+0

두 번째 뷰 콘트롤러가 제시되면 콜백으로 클로저를 전달하고 'IBAction'에서 클로저를 호출합니다. – vadian

답변

2

delegate을 사용하는 가장 좋은 방법은 여러 가지가 있습니다.

을 하나 만들고 ViewController1에서 해당 프로토콜을 확장 할 수 있습니다. 이제 ViewController2에 프로토콜 delegate을 만들고 ViewController1'sprepareForSegue 메서드에서 해당 대리인의 참조를 전달합니다.

먼저 이제 이런 ViewController1이 프로토콜을 확장 prepareForSegue 방법 대리인의 참조를 전달이

protocol PassdataDelegate { 

    func passData() 
} 

같은 하나의 프로토콜을 작성할

class ViewController1 : UIViewController, PassdataDelegate { 


    func passData() { 
     //Here call your function 
     self.callMyFunction() 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if (segue.identifier == "SegueIdentifier") { 
      let destVC = segue.destinationViewController as! ViewController2 
      destVC.delegate = self 
     } 
    } 
} 

지금 ViewController2에 의 대표 객체를 만들 이처럼

class ViewController2 : UIViewController { 

    var delegate: PassdataDelegate? 

    //Now call the method of this delegate in Button action 
    @IBAction func buttonClick(sender: UIButton) { 
     self.delegate.passData() 
     //Now dismiss the controller 
    } 
} 

참고 : - 여기에서 나는 string을 전달하지만 사용자는 delegate 메서드에서 선언 한 모든 유형의 객체를 전달할 수 있습니다.

+0

빠른 답장을 보내 주셔서 감사합니다.하지만 두 번째보기를 닫고 모든 문자열을 전달하지 않고 첫 번째보기에서 func을 호출하려는 경우 어떻게해야합니까? 위 코드를 어떻게 바꿀 수 있습니까? – Clarence

+0

나는'ViewController1'에 델리게이트 메소드를 추가하고 내 대답을 편집했습니다. 이제 델리게이트 메소드에서 메소드를 호출합니다. –

+0

고마워, 그건 참으로 도움이된다. – Clarence

1

unwind segue을 참조 할 수 있습니다.

class ViewController1 { 
    @IBAction func doSomeStuffAfterReload(segue: UIStoryboardSegue) { 
    // do whatever you need to do here. 
    } 
} 
exit outletbutton에서 ViewController2 Ctrl 키 + 드래그에서 스토리 보드에

doSomeStuffAfterReload를 선택합니다.

현재 작업에서 볼 수 있습니다 https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/ 해피 ^^

관련 문제