2012-09-03 2 views
0

내가 밖으로 혼란 설명하려고 하겠어 : 나는 Three20 라이브러리Three20 InvalidateModel

가 나는 "팝업"를 생성하는 XIB와 클래스를 포함하는 PostEdit 클래스가 사용하고 편집 후 (아래 이미지)를 호출 , 기존보기 (PostSearch)를 통해 사용자가 자신이 만든 포럼 게시를 편집하려고 할 때 화면을 떠나지 않아도됩니다.

그래서 사용자가 보내기 버튼을 누르고 데이터가 서버로 다시 전송되면 PostSearch 클래스 (Model/DataSource)를 invalidateModel로 되돌리고 싶습니다. 이것은 내가 무엇을해야 할지를 알지 못하는 곳입니다. 필자는 PostEdit 클래스에서 성공을 거두어 이것을 시도했습니다.

PostSearch *post = [[PostSearch alloc] init]; 
    [post Invalidate]; 
    [post invalidateModel]; 
    [post invalidateView]; 
    [post release]; 

enter image description here

+0

PostEdit과 PostSearch 간의 관계에 대해 더 설명하고 사용자가 완료 할 때 무엇을하려고합니까? – sergio

+0

둘 사이의 유일한 관계는 위의 이미지가 포럼 게시를 편집하는 방법 일 뿐이라는 것입니다. 사용자가 완료를 클릭하면 내가 알아낼 수없는 유일한 방법은 invalidateModel (Three20)하는 방법입니다. 유효하지 않은 모델은 PostSearch 클래스에 있으며 PostEdit 클래스에서 호출하려고합니다. – Duny

답변

0

난 당신이 뭘 하려는지 이해가 확실하지 않다; 어쨌든 PostSearch가 PostEdit 아래에있는 컨트롤러라고 가정하고 대답하려고 노력할 것입니다. 게시물을 편집하고 완료를 클릭 한 후 PostSearch를 업데이트하려고합니다.

이것이 맞으면 PostEdit 아래에 이미 존재하고 현재 표시된 PostSearch 개체에 액세스해야합니다. 예를 들면 다음과 같습니다.

  1. PostEdit을 만들 때 PostSearch에 대한 참조를 전달합니다. done 버튼 핸들러에서 모델을 무효화합니다. 또는

  2. 게시 완료 후 POST가 실행되는 알림 (NSNotificationCenter를 통해)에 대한 PostSearch 개체를 등록하십시오. 또는

  3. "brute-force"접근 방식을 사용하고 PostSearch viewWillAppear에서 무효화를 사용하십시오.

나는 결코 invalidateModel 메서드를 사용하지 않았습니다. 내 데이터를 새로 고침해야 할 때해야 할 일은 다음과 같습니다.

self.model = nil; 
self.model; 

이 또한 시도해 볼 수 있습니다.

+0

나는 그것을 시도했다, 나는 심지어 타이머를 호출하려고 시도했다. [self invalidate] 타이머는 호출되지만 [self invalidate]는 아무 것도하지 않는다. 클래스 내부에서 메소드가 호출 된 경우에만 작동한다. 이것을 할 수있는 방법이 있다면. – Duny

+0

나는 당신이 클래스 내부에서 그 메소드를 호출 할 수있는 세 가지 다른 방법을 제안했다. 하나의 메소드를 선택하고 그것을 시도하면, 더 나아가 도움을 줄 수있다. – sergio

+0

나는 그 (것)들을 모두 시도하고, 나는 아직도 아무것도받지 않는다. 이것은 나를 당황하게한다. – Duny