그래서 내가 응용 프로그램을 짓고 있어요 나는 서로에 대해 알 필요가 없습니다 몇 ViewControllers를 통해 실행하고이 구현을 사용 UINaviagtionController에 액세스하는 방법을 이해 이해, 그래서 그렇게 같은 뷰를 통해 전환 시작 도와주세요. ..나
// remove the previous view in order to load in the new view
NSArray *sViews = [self.view subviews];
[sViews makeObjectsPerformSelector:@selector(removeFromSuperview)];
// create the new view, in this case the user wishes to
BaseViewController *baseVC = [[BaseViewController alloc] initWithNibName:@"BaseViewController" bundle:[NSBundle mainBundle]];
self.baseViewController = baseVC;
[baseVC release];
// add the newly created view to the screen
[self.view insertSubview:baseViewController.view atIndex:0];
은 상기 I가 상주하는 내비게이션 제어기 원하는 뷰 컨트롤러이다. I는 멤버 변수로서 UINavigationController가 생성하고 navController로 이름이 뷰 컨트롤러하는 .m 이내에. 그런 다음 아래 코드를 사용하여 UINavigationController를 구현하려고했습니다.
UIViewController *control = [[BusinessDisplayViewController alloc] initWithNibName:@"BusinessDisplayViewController" bundle: nil];
navController = [[UINavigationController alloc] initWithRootViewController:control];
[self presentModalViewController:navController animated:YES];
내가 겪고있는 문제는 두 가지입니다. 첫째, BusinessDisplayViewController (아래)가로드 될 때 내 맵 뷰와 tableView 사이에 20 픽셀 정도의 틈이 있는데 그 이유는 그 이유가 확실하지 않은 insertSubview:
을 사용하여로드 할 때 존재하지 않습니다. 둘째, 일단 BusinessDisplayViewController.m에 있으면 BaseController에서 만든 navigationController에 액세스하는 방법을 모르겠습니다. 누군가가 왜 내 견해에 영향을 주는지, 어떻게 navigationController에 액세스 할 수 있는지, 또는 내가 올바른 방향으로 가고 있는지 설명 할 수 있습니까?
기본적으로 나는 내 사고 방식을 고치고 네비게이션 컨트롤을 앱의 루트에 추가하는 대신에 귀여운 것을 얻으려고한다. :) 또한 갭이 상단에 없다. 내보기의 그것은 실제로는 mapView와 tableView 사이에 있습니다. –
글쎄, 나는 그것이 "귀엽다"라는 말에 달려 있다고 생각한다. Apple이 "전체 화면"보기를 관리하는 데 사용되는 UIViewController 프레임 워크를 설계했음을 명심하십시오. 화면의 일부만 차지하는 내비게이션 컨트롤러를 만들려한다면 iOS 4에서는 작동하지 않을 것입니다. 그러나 내비게이션 컨트롤러가 풀 스크린이고 원하는 위치에 있지 않을 경우 당신이 항상 presentModalViewController : animated :'를 사용하여 표현할 수 있습니다. – cduhn