2010-12-21 2 views
0

화면 오른쪽에서 viewcontroller를 열고 싶습니다.화면의 오른쪽에서 다른보기 컨트롤러보기를 엽니 다.

일에

[자체를 presentModalViewController : PVC 애니메이션 : YES];

이 나는 ​​화면 :

내가 그것을 달성 할 수있는 방법의 바닥에서 오는 것처럼 그 화면의 오른쪽에서 슬라이딩 대신 나타나는 것처럼 서로의 ViewController의 견해를 표시 할. 제발 도와주세요 :)

답변

1

UINavigationController - Class Reference으로 조사하십시오. 이렇게하면 측면에서 밀어 넣을 계층 구조를 구성 할 수 있습니다. 또는 UIView animation blocks으로 게임을 할 수도 있습니다. 앱에 가장 적합한 것을 찾아냅니다. 범주와 같이 측면에서 밀어 낼 여러 ​​가지 사항이있는 경우 UINavigationController를 사용하십시오. 옆에서 들어 와서 나가기를 원하는 간단한 뷰가 있다면 UIView 애니메이션이나 다른 애니메이션 메서드를 사용하는 것이 좋습니다. UIView의 애니메이션은 다음과 같이 표시됩니다

[UIView beginAnimations:nil context:nil]; 
//code to move view on to screen 
[UIView setAnimationDuration:0.5]; 
[UIView commitAnimations]; 
2

당신이 찾고있는 것은 UINavigationController입니다. 앱 위임에서

당신이 applicationDidFinishLoading이과 같은 줄 것이다 :

[window addSubview:viewController.view]; 

변경 이들에 라인 : 이제

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
[window addSubview:navController.view]; 

당신이 할 수있는 대신 [self presentModalViewController:pcv animated:YES];의 :

[self.navigationController pushViewController:pcv animated:YES]; 

이 컨트롤은 " 오른쪽 "애니메이션. Plus를 사용하면 앱 내에서보기 스택 및 탐색을보다 잘 제어 할 수 있습니다. 앱의 탐색을 제어하는 ​​가장 좋은 방법입니다.

ps : navController가 누출 될 것입니다.이 예제가 내 예제에서와 같아서 내가하는 일을 볼 수 있습니다. 너는 dealloc에 놓을 수 있도록 navigateroller를 앱 델리게이트의 .h 안에있는 iVar로 만들고 싶을 것이다. 지금처럼 그것을 놓으면 메시지를 보낼 수 없습니다.

+0

안녕하세요 당신은 당신이 당신이 그것을 해제 할 수 있도록 앱 위임의 .H에 navController에게 IVAR을 할 것이다 "무슨 뜻인지 자세히 설명해 수 있습니다 dealloc "죄송합니다. 저는이 분야의 초심자입니다. – Fatema

+0

ok ... :) 기본적으로 두 가지 유형의 변수가 있습니다. "로컬 범위"변수가 있습니다. 이것들은 클래스의 메소드에서 선언 한 객체입니다. 그것들은 그 방법에 대해서만 범위를 가지며 그것의 otuside로부터 접근 할 수 없다. 그런 다음 "전역 범위"변수가 있습니다. 이것들은 클래스의 헤드 (.h 파일)에서 선언하고 클래스 전체에서 액세스 할 수있는 객체입니다. 위의 코드에서 문제는 범위가'applicationDidFinishLoading :'메서드이므로 객체를 다시 릴리스하지 않으면 객체에 다시 액세스 할 수 없기 때문에 메모리 누수가 발생합니다 ... –

+0

... 다른 곳에서. 그래서 당신이 정말로해야 할 일은 전역 변수 나 iVar로 선언하는 것입니다 (나는 ... /로 불렀습니다). 이렇게하려면 WhateverAppDelegate.h에 들어가서'@interface WhateverAppDelegate ... {'줄 뒤에 변수를 선언하고 싶습니다. 따라서 'UINavigationController * navController;'를 입력하십시오. 그런 다음'applicationDidFinishLoading :'내 코드를'navController = [[UINavigationContr ...]로 변경하십시오.(당신이 이미 변수를 선언했기 때문에)' 그런 다음'dealloc' 메쏘드 (하단)에'[navController release];를 넣으십시오. –

관련 문제