여기 내 문제가 있습니다. 보기 기반 응용 프로그램이 있습니다. 다음과 같이 AppDelegate
에 NavigationController
을 추가했습니다.IOS. 내비게이션 컨트롤러. 재사용 ViewController
UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:_viewController];
navigationController = [nvc retain];
[nvc retain];
[self.window addSubview:navigationController.view];
이 코드는 인터넷에서 가져 왔습니다. 그것이 맞는지 나는 모른다.
모든 viewControllers에서 다음을 수행하여 새보기를 푸시합니다. self.navigationController
이 밀어보기에 전무를 반환하지 않는 이유
UIViewController *newViewController = [[NewViewController alloc] init];
[self.navigationController pushViewController:newViewController animated:TRUE];
모르겠어요. 그것은 AppDelegate 탐색 컨트롤러를 어떻게 든 사용하고 있습니까?
일부보기 컨트롤러를 재사용하고 싶습니다. 뷰 컨트롤러를 호출 할 때마다 init을 할당하지 않는다는 뜻입니다. 어떻게해야합니까?
AppDelegate
에 참조 번호를 저장 하시겠습니까? 다른 해결책?복잡한 탐색이 있습니다. 즉, A, B, C는 뷰 컨트롤러이다. A 호출 B. B 호출 C. C 호출 A. 계속 호출 할 때마다 새보기 컨트롤러를 만들고 있습니다. 어떻게 그 뷰 컨트롤러를 재사용 할 수 있습니까 (또는 새로운 뷰를 호출 할 때 스택에서 뷰를 팝 해제 할 수 있습니까?).
감사합니다.
아마도 답변은 NavigationController를 사용하지 않습니다. 새로운보기 컨트롤러를 사용하지 않고 밀어 넣을 수있는 방법이 있습니까? 새로운보기 컨트롤러를 아무 스택에 추가하지 않고 밀어 넣기 만해도 문제가 해결 될 수 있습니다. 어떻게 생각해? – Tony
전적으로 사용자가 앱과 상호 작용하는 방식에 달려 있습니다. 'presentModalViewController : animated :'를 사용하여 새로운 뷰 컨트롤러를 보여줄 수도 있습니다. 그러면 새로운 뷰 컨트롤러가 현재 UI의 맨 위에 모달이됩니다. – mattjgalloway
Matt, viewcontroller A, B 및 C가 있다고 가정하십시오. A가 기본입니다. A는 B로 갈 수 있고 B는 B로 갈 수 있습니다. B 또는 C는 A로 돌아갈 수 있습니다. A-> B, B <-> C, C-> A, B-> A. A의 네비게이션 컨트롤러, B의 푸시, B가 C의 C를 호출 할 때 동시에 A의 네비게이션 컨트롤러에서 B를 팝 할 수 있습니까? 다음과 같습니다. - A는 B를 호출합니다. 탐색 컨트롤러 스택 : A, B - B가 C를 호출합니다. 탐색 컨트롤러 스택 : A, C - C가 B를 호출합니다.탐색 컨트롤러 스택 : A, B - B가 A로 돌아갑니다. 탐색 컨트롤러 스택 : A 맞습니까? 다른 뷰를 호출 한 후 어떻게 뷰를 팝핑 할 수 있습니까? – Tony