2011-12-14 2 views
0

나는 가지고있는 각 ViewController에서 모든 메서드에 액세스 할 수있는 AppDelegate의 인스턴스를 가져 오려고합니다. 다른 클래스 변수로 선언하려고하면 Initializer Element is not a compile-time constant이됩니다. ViewController 내에서 메서드에서 선언하면 사용할 수 있습니다. 정수 및 부동 소수점을 AppDelegate에 설정 한 속성에 저장하려고합니다. (큰 아니요 아는 바가 없지만 이것은 입문 클래스의 프로젝트이며 너무 진보 할 것으로 예상되지 않습니다. 지금까지 MVC 패러다임을 따르지 않았습니다.) 앱은 툴바를 사용하여 앱의 ViewController를 사용하여 뷰를 전환하여 다른 ViewController를 하위 뷰로로드합니다. AppDelegate 선언과 업데이트 문을 각 뷰 컨트롤러의 ViewDidUnload 메서드에 넣을 예정 이었지만 뷰를 전환 할 때마다 뷰가 언로드된다는 것을 확신하지 못했습니다. SuperView에서 현재 뷰를 제거하고로드하여 전환했습니다. 새로운 것은 인덱스 0에있는 Subview로). 현재 조회되지 않은 조회수는 어떻게됩니까? AppDelegate 선언 및 업데이트를 구현할 수 있다는 것을 감지하는 메서드가 있습니까?ViewController 전체에서 액세스 할 수있는 대리자 개체를 만드는 방법

이상하게도 대량으로 많이 업데이트되어 AppDelegates 값으로 업데이트 된 수량을 보유하고 싶기 때문에 AppController의 모든 메서드에서 AppDelegate 개체에 액세스 할 수 있어야합니다. 그들은 내가 사전 모두에 수퍼 뷰 (SuperView)

감사

에서 삭제 된보기로 무슨 확실하지 않다 때문에 발생

답변

2

당신은 어디서나 응용 프로그램에서 [[UIApplication sharedApplication] delegate]를 통해 앱 위임에 액세스 할 수 있습니다.

사용자가 직접 개체의 다른 복사본을 인스턴스화해야합니다. 시스템이 시작할 때이 작업을 수행합니다.

변경 사항을 감지 할 때 viewDidDisappear 메서드를 UIViewController으로 재정의 할 수 있습니다. (당신 말이 맞아요 - 일반적으로 전환 할 때 언로드되지 않고 viewDidUnload은 호출되지 않습니다)

관련 문제