2012-09-28 3 views
0

없이 나는이 있습니다 -UINavigationController가 쇼는하지만 내 위임 클래스에서 뒤로 버튼

BluenibViewController *mvc = [[BluenibViewController alloc] init]; 
UINavigationController *unvc = [[UINavigationController alloc] init]; 
[unvc pushViewController:mvc animated:NO]; 
[mvc release]; 
[self.window addSubview:unvc.view]; 
[self.window makeKeyAndVisible]; 
return YES; 

을 내 BluenibViewController에서 나는이 방법이 -

-(IBAction) BookingsViewController:(id)sender 

{ 
    bookingsViewController1 = [[BookingsViewController alloc] 
           initWithNibName:@"BookingsViewController" 
           bundle:nil]; 

UINavigationController *navController = self.navigationController; 
[navController pushViewController:bookingsViewController1 animated:YES]; 


self.title = @"Bookings"; 
[self.window makeKeyAndVisible]; 
[self.view addSubview:bookingsViewController1.view]; 
[navController release]; 
[bookingsViewController1 release]; 

}이 방법의

산부인과 클릭 다음보기로 이동할 수 있지만 탐색 모음에 뒤로 버튼이 없습니다.

나는 바보 같은 실수를 저를 지적하십시오.

답변

2

여기에 몇 가지 오류가 있습니다. 내가 어떤 서비스가 될 수 없는지 알 수있게 해준다.

먼저 네가 내비게이션 컨트롤러 [navController release]를 과도하게 사용하고있는 것을 볼 수 있습니다.

둘째, 전체 프로젝트에서 창을 한 번/한 번만 표시하면됩니다. navController를 창에 대한 rootViewController로 설정하고 키/가시화 한 다음 창을 다시 사용하지 않아도됩니다. 아무 것도 깨지 않았다고 생각하지 마라. 처음부터 키/보이도록 모든 호출을 제거해야한다. 이 같아야 새로운 뷰 컨트롤러 밀기 결국

:

[self.navigationController과 pushViewController : [BookingsViewController의 ALLOC] INIT] 오토 릴리즈] 애니메이션 : YES];

당신이 찾고있는 것을 얻기 위해 다른 것을 필요로하지 않아야합니다.

+0

스티브, 감사합니다.하지만 [self.view addSubview : bookingsViewController1.view] 행을 제거한 후에는 아무런 변화가 없습니다. 루트 컨트롤러에 남아 있습니다. – nasaa

+0

추가 [navController release] 행을 삭제 했습니까? 그 하나가 나를 가장 괴롭혔다. –

+1

안녕하세요 스티브, 실수를 지적 해 주셔서 감사합니다. 나는 신선한 프로젝트를 만들었고 당신이 말한대로 일을 시작했습니다. 다시 한 번 감사드립니다! – nasaa

2

unvc.view을 하위보기로 self.window으로 추가하면 안됩니다. 당신이 (당신의 BookingsViewController: 방법) self.view의 서브 뷰로 bookingsViewController1.view를 추가해서는 안

self.window.rootViewController = unvc; 

과 : unvcself.window.rootViewController로 당신은 할당해야합니다. 네비게이션 컨트롤러는 밀어 넣은 후 화면에 bookingsViewController1.view을 가져다 줄 것입니다.

+0

롭 이봐, 내가 루트보기로 unvc 추가하고 [self.view의 addSubview를 제거 : messageViewController1를 .전망];. 하지만 이렇게하면 하위 뷰를 전혀 얻을 수 없습니다. 탐색 막대를로드하기 만하면됩니다. 그리고 아직 뒤로 버튼이 없습니다. – nasaa

0
self.navigationItem.hidesBackButton =YES; 

이 코드를 따르십시오. 그것은 조금 늦게 온다

0

.... 희망은 도움이되지만 아이폰 OS 8 당신은 할 수 있습니다 :

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