2011-10-19 3 views
1

나는 매력을 작동시키는 표준 UIViewController를 가지고있다. 그러나, 나는 이것에 하위 뷰로 UINavigationController를 추가하고 원하는대로 추가하고 제거하려고한다. 그러나 단순히 다른 컨트롤러를 현재 컨트롤러에 하위보기로 추가 할 수는 없습니다. 그러면 어떻게해야합니까?UINavigationController를 기본 UIViewController 위에 추가 하시겠습니까?

감사합니다. 난 당신이 무엇을하고 있는지 모르겠지만

+1

당신이 무엇을 의미합니까 예를 들어, 다음 코드에서 저장 및 취소 버튼 위의 presentedModally 뷰 컨트롤러 당신이 IBAction를 방법과 관련된 추가? UINavigationController뿐만 아니라 원래 UIViewController의 일부가 보이길 원하십니까? Apple은 이런 종류의 일을하는 것에 대해 경고합니다. 당신은 * 이와 비슷한 것을 할 수 있습니다. 그러나 어떻게 할 수 있을지 걱정하기 전에 당신이 성취하고자하는 것에 대해 의구심을 갖습니다. – occulus

+0

여기서 타겟은 무엇입니까? iPad 또는 iPhone? – occulus

+0

현재는 iPhone이지만 iPad는 결국입니다. 나는 당신이 의미하는 것을 보았습니다. 저는 서브 뷰를 볼 수 있도록 객체를 뷰에 추가하는 일반적인 방법으로 추가했습니다. 그러나이 새 nav 컨트롤러를 열 때 원래 뷰를 볼 필요가 없습니다. 무엇을 제안 하시겠습니까? –

답변

1

내비게이션 컨트롤러에 새로운보기를 만들고 "맨 위"에 표시하는 코드가 있습니다 (모달 표시).

여기에 몇 가지 주요 사항이 있습니다 : 당신 경우

비록 당신 initWithRootController 및 presentModally 전에 당신이 탐색 컨트롤러 모달을 제시하면, 당신이 (당신이 필요로하는 경우)가 & 오른쪽 버튼을 눌러 남은 설정해야

'현재보기 재 당신이 모달을 제시하는 경우, 그것은은 UINavigationController에 싸여해야하는 navController에 (포함하는 일부 SO 게시물이 있다는)

UINavigationController with presentModalViewController

MyView *myView = [[MyView alloc] initWithNibName:@"MyView" bundle:nil]; 

UIBarButtonItem *cancelBtn = [[UIBarButtonImageItem alloc] init... 

UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] init... 

[[myView navigationItem] setLeftBarButtonItem:cancelBtn]; 
[[myView navigationItem] setRightBarButtonItem:doneBtn]; 
[cancelBtn release];  
[doneBtn release]; 

// Edit purchase in full modal view. 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myView]; 

[[self navigationController] presentModalViewController:navController animated:YES]; 

그러면 방금 모달로 표시 한보기 내에서이를 닫을 수 있습니다. 당신이 "하위 뷰를 같이"말할 때

- (IBAction)cancel:(id)sender 
{ 
    NSLog(@"cancel"); 
    [self dismissModalViewControllerAnimated:YES]; 
} 

- (IBAction)save:(id)save 
{ 
    NSLog(@"done"); 
    // do work here 
    [self dismissModalViewControllerAnimated:YES]; 
} 
0

당신은, 비록은 UINavigationController의 경우 그의 ViewController의 보기

[mainViewController addSubview:anotherViewController.view]; 

의 서브 뷰와 같은 다른의 컨트롤러 보기을 추가 할 수 있습니다, 그것은 일반적으로하지 않습니다 네가하고 싶은 뭔가.

-(void)presentModalViewController:animated을 보았습니까?

관련 문제