2011-07-29 3 views
0

지금 두 뷰를 전환하려고합니다. 문제는 어떻게 호출되는지입니다. 내가 부모보기가해당 클래스의 메서드 호출에서 수퍼 뷰를 제거하십시오.

: Heres는

가장 쉬운 방법은 내 상황을 설명합니다. ChildView 하위 클래스에 테이블이 포함되어 있습니다. 해당 테이블에서 개체를 선택하면 해당 부모보기의 다른 하위보기로 전환하고 싶습니다.

부모 --------- | 자녀 1 | 자녀 2

자녀 1 저 아이 뷰 1과 2 사이를 전환 부모의 메서드에 액세스 할 수 있도록 부모의 서브 클래스이며, 하지만 어떤 이유로 그것은 어린이 1에서 액세스 할 때 작동하지 않습니다.

이렇게하는 방법에 대한 단서가 있습니까? Heres는 기본 코드 :

자녀 1 - (무효) changeViews

[super methodToSwitchChildViews]; 

부모 - (무효) methodToSwitchViews

[self.child1.view removeFromSuperView]; 
[self.view insertSubView:child2.view atindex:0]; 
+0

당신을 무엇 자녀가 부모의 하위 클래스라는 것을 의미합니까? 그것은 단지 그 아이가 그 부모의 성질을 가졌음을 의미 할 뿐이며, 그 부모가 부엉이와 연결되어 있다는 것을 의미하지는 않습니다. – Cyprian

답변

0

좋아요, 저는 꽤 많이 파 냈고 마지막으로 해결책을 찾아 냈습니다. 경우 사람에 지금 여기에 같은 문제는 당신이 무엇을 가지고

아이 뷰의 .H 파일에서

@class parentViewName 

이 나서하는 .m 파일에 추가 할

#import "parentViewName.h" 

... 

- (void) functionToRemoveSelfFromView { 
    parentViewName *PARENT = [[parentViewName alloc] init]; 

    // You must have a method in the parent view to toggle or remove the subview, the way 
    // you want it done, then call it with the new delegate. Make sure it doesn't set this 
    // view to nil or releases it because this method has yet to return. If animating do not 
    // hide this view either. 

    [PARENT methodToRemoveSelfFromView]; 
    [PARENT release]; 
} 
0

슈퍼가 앞에있는 클래스입니다 (sub) 클래스를 상속합니다. 여기서 아이들은 슈퍼 뷰 (부모)에 대한 견해 인 것 같습니다. 따라서 superview가 아닌 ​​superview를 사용하십시오.

관련 문제