큰 프로젝트에서이 문제점이 발생했지만 아주 기본적인 프로젝트로이 문제를 재현 할 수있었습니다. 두 개의 뷰 컨트롤러가있는, 그래서 모두가 위의 클래스를 사용하여 서로를 가리키는 Show Detail
segues으로,세부 정보 표시 영역에 호출되지 않음
class ViewController: UIViewController {
deinit {
println("Deinitializing")
}
override func viewDidAppear(animated: Bool) {
NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "segue", userInfo: nil, repeats: false)
}
func segue() {
self.performSegueWithIdentifier("segue", sender: self)
}
}
내 스토리 보드가 구성 : 나는 다음 뷰 컨트롤러 클래스가 있습니다. 나는 그들이 앞뒤로 "튀어 오르는"것을 확인할 수있다. 새로운 인스턴스가 매번 표시되고 유지 사이클이 없더라도 이전에 표시된보기 컨트롤러의 deinit
메서드가 호출되지 않습니다.
사용자 지정 구를 사용하여 원하는 동작을 얻을 수 있었지만 제 질문은 다음과 같습니다.
설명서에 내가 예상 한대로 작동해야한다고 나와있는 것처럼 보였습니다. 필자는 테스트 프로젝트에 적용되는 부분을 강조했습니다.
현재는 정보 영역의 내용. 앱이 마스터 및 세부 정보보기를 표시하는 경우 새 콘텐츠가 현재 정보를 대체합니다.앱이 마스터 또는 세부 정보 만 표시하는 경우 콘텐츠가 현재보기 컨트롤러 스택의 상단을 대체합니다.
현재보기 컨트롤러 스택의 맨 위를 바꾸면 현재보기 컨트롤러가 초기화되지 않을 것으로 예상됩니다.
class ExampleSegue: UIStoryboardSegue {
override func perform() {
let source = self.sourceViewController as UIViewController
let destination = self.destinationViewController as UIViewController
source.view.window?.rootViewController = destination
}
}
감사합니다 :
대안이 상세를 참고로
을보기 위해,이 SEGUE 통해 내 원하는 동작을 (공상 아무것도하지 않고, 잘못 될 수있는) 달성 할 수 있었다 어떤 도움이 필요해!
내비게이션 컨트롤러를 사용합니까? 두 번째보기 컨트롤러를 표시하면 첫 번째보기 컨트롤러가 네비게이션 컨트롤러의 속성 인 스택으로 푸시됩니다. 그래서 ... 그것은 부끄럽지 않습니다. –