2010-12-14 2 views
2

내 응용 프로그램에는 탭보기 컨트롤러가 기본 액세스 지점으로 있습니다. 그러나 처음 실행될 때 몇 가지 기본 데이터를 확인해야하며 누락 된 경우이 정보를 먼저 캡처해야합니다. 탭보기의 테이블은이 정보를 사용하여 데이터를 표시합니다.하위보기가 제거되었음을 부모보기에 알리는 방법 - iphone

내가하는 방식은 다음과 같습니다. 내 app-delegate에서 탭보기를 표시합니다. 그런 다음 정보 x를 확인하십시오. 존재하지 않으면 하위 뷰 view2를 추가하고 위에 표시하십시오. view2에서 정보를 캡처하고 단추를 클릭하면 수퍼 뷰에서 정보를 제거합니다. 필요한 데이터는 모델의 전역 변수에 저장됩니다. 이제 제어 도구가 표시된 탭보기로 돌아갑니다. 문제는 올바른 정보가 반영되도록 탭보기에서 테이블 데이터를 다시로드해야한다는 것입니다. 그러나 상위 탭보기에서이를 캡처 할 수 없습니다. 따라서 새로 고침을 수행 할 수있는 유일한 방법은 버튼을 수동으로 클릭하는 것입니다. 이는 이상적인 방법이 아닙니다. 하위 뷰가 스택에서 제거 되 자마자 자동으로 새로 고침하고 싶습니다.

답변

4

새 데이터가 추가되면 모델에 알림을 게시하는 것이 가장 좋습니다. 테이블 뷰 컨트롤러는 해당 알림을 수신 할 수 있으며 알림을 받으면 해당 알림을 수신 할 수 있습니다.

Posting a NotificationRegistering for a Notification에 대한 Apple의 설명을 확인하십시오.

+0

무엇 신속한 답변 :

- (void) viewDidLoad { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateView:) name:@"updateView" object:nil]; } - (void)updateView:(NSNotification *)notification { /* this is where the updates will take place, such as a [tableView reloadData]; */ } 

그리고 그 통지를 호출! 이미 구현하고 작동하도록했습니다! 감사합니다. – user542584

1

부모보기를 하위 클래스로 만들고 willRemoveSubview :를 무시하는 것이 한 가지 방법입니다. 이 뷰는 superview에서 뷰가 제거되기 전에 호출됩니다.

6

알림을 등록하고 발신하는 것이 좋습니다. 당신은 통지를 보낼보기 위해

:

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateView" object:nil]; 
+0

샘플 코드를 보내 주셔서 감사합니다. 첫 번째 게시물이기 때문에 투표를 할 수 없습니다. 대답 : – user542584

+0

답장에 upvote만큼 좋은 체크 표시를 할 수 있습니다 .D – WrightsCS

+0

는 체크 표시로 여러 답을 표시하려고했지만 한 가지만 허용합니다. (이전 답을 확인 표시했습니다. 그것이 처음 왔기 때문에 실제로 솔루션을주었습니다. 다음에 :) ..하지만 고마워요! – user542584

관련 문제