2011-03-28 4 views
1

의 UIView는

secondView * = [[secondView alloc]initWithNibName:@"secondView" bundle:[NSBundle mainBundle]]; 
[UIView beginAnimations:@"ani" context:nil]; 
[UIView setAnimationDuration:0.9]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:NO]; 
[UIView commitAnimations]; 
[self.view addSubview:secondView.view]; 

내 질문에 내 오브젝트가 제거되기 때문에 내가 secondView을 해제 할 수 있다는 것입니다 동일한보기 .. 만약 내가 할 수 없다 및 두 번째보기 어떻게 및 언제 secondView 개체를 해제하고 어떤보기에서 이동 .. secondView 첫 번째 같은 돌아올 필요가 없기 때문에 .. 내가 쓴다. 백 코드 :

[self.View removefromsuperview]; // means this code is written on second View backbutton then its goto the firstView.. 

내가 secondView 객체를 공개 할 때 알고 싶습니다. wh 나는 첫 번째보기에서 만들 ... 아주 나쁜 때문에 autorealease를 사용하지 마십시오 ...

나는 firstView dealloc 클래스에서 secondView 객체를 릴리스 할 수있는 하나의 솔루션이라고 생각합니다. 제발 도와주세요. ..

감사합니다.

+0

정확히 무엇을 묻는 지 조금 불투명합니다. – GendoIkari

+0

첫 번째보기에서 만드는 두 번째보기 개체를 언제 릴리스해야하는지 묻고 있습니다 ... 그게 전부 .. 간단히 .. 그리고 최고의 가능성은 .. !! !! –

답변

1

initWithNibName.view을 사용하면 secondView이 UIViewController 하위 클래스의 인스턴스임을 나타냅니다. 그렇다면 하나의 UIViewController 뷰를 다른 UIViewController 뷰의 하위 뷰로 추가해서는 안됩니다. 그렇게하면 abusing UIViewControllers이며 앱에서 예기치 않은 동작이 발생합니다.

뷰 사이의 전환을 관리하려면 Apple에서 제공 한 컨테이너보기 컨트롤러 중 하나를 사용하여 여러 UIViewController를 관리하거나 단일 UIViewController보기의 하위보기간에 전환해야합니다. 어떤 방식 으로든 상위 컨트롤러가보기 간 전환을 관리하는 컨트롤러에서 컨트롤러를 해제 할 수 있습니다. 예를 들어, UINavigationController를 사용하는 경우 탐색 스택에서 튕겨 나왔을 때 컨트롤러를 해제 할 수 있습니다. 자신 만의 UIViewController를 작성하여 UIViewController가 아닌 컨트롤러가 여러 개있는 뷰를 관리하는 경우 하위 뷰가 더 이상 필요하지 않을 때 부모 뷰 컨트롤러에서보기와 제어기를 해제 할 수 있습니다. 부모 개체가 자식을 관리하도록합니다.

+0

나는 당신의 대답을 너무 많이 이해하지 못한다. :( –

관련 문제