0

I는 스토리의 다음 컨트롤러 가지고긴장을 풀고 비행 중계기 컨트롤러 내부의 테이블 뷰 컨트롤러의 버튼에서

Storyboard

네비게이션 컨트롤러의 메인 뷰 컨트롤러 버튼에 의해 segued된다 왼쪽. 그것은 popover에서 나타납니다. 사용자가 오른쪽의 테이블보기 컨트롤러 상단에서 "로그 아웃"단추를 클릭하면 기본보기 컨트롤러로 다시 연결하고 로그 아웃을 수행하는 메서드를 호출 한 다음 인증보기 컨트롤러를 표시해야합니다 (사용자가 로그인하지 않은 경우 앱을 사용할 수 없음). 이것을 시도한 모든 방법이 실패했습니다.

  1. 내가 언 와인드 SEGUE와 함께 할 거의 수 있지만 기본보기에서 내 언 와인드 방법에 내가 인증 뷰 컨트롤러를 시작하면 내가보기 컨트롤러에서 기각 프리젠 테이션 동안 나에 기각하는 "시도를 얻을 수 진행 "경고. 해고가 완료 될 때까지 임의의 시간을 기다리는 타이머를 설정하면 해킹처럼 보입니다. ("귀하의 segue가 막 완료되었습니다"콜백이 있었으면 좋겠다.)

  2. 주 컨트롤러를 prepareForSegue 메서드의 대리자로 설정하고 대리자 메서드를 호출하여 수행 할 수 없습니다. segue의 destinationViewController가 내 설정 컨트롤러가 아니기 때문에 단추를 클릭하면 표준 설정이됩니다.이 설정은 내비게이션 컨트롤러에 있습니다.

이렇게할만한 방법이 있습니다. 어쩌면 버튼을 자체를 닫은 다음 설정 블록의 NSNotification을 실행하는 설정보기 컨트롤러의 메서드에 연결하면됩니까? 그건 아직도 ​​해커처럼 보인다.

답변

1

당신은, 사용하여 prepareForSegue 방법의 설정 컨트롤러의 대표 주 뷰 컨트롤러를 만들 수 있습니다

SettingsViewcontroller *settings = [(UINavigationController *)segue.destinationViewController topViewController]; 
settings.delegate = self; 

난 당신이 다음 설정 컨트롤러의 viewDidDisappear 방법의 대리자 메서드를 호출 할 수 있다고 생각.

+0

이유가 무엇이든간에 나는 popover가 취소되는 것처럼 보이지 않지만 솔루션이 분명히 맞는 것처럼 보입니다. 그래서 나는 그것을 받아들입니다. 고맙습니다. – bkocik

관련 문제