0

나는 네비게이션 컨트롤러를 사용하는 프로그램을 가지고 있으며 앱이 두 가지 다른 뷰 중 하나를 실행해야합니다. 기본적으로 특정 정보가 이전에 입력 된 경우 A를보기 위해 실행해야하는 앱이 필요하지만 정보가 입력되지 않은 경우 B를보기 위해 실행해야합니다.이 작업을 수행하는 데 어려움을 겪고 있으며 어떤 방법으로 궁금해합니다. 만약 내가 이것을 구현할 수 있다면. 나는 그것이 애플 리케이션 델리게이트에서 수행 될 필요가 있다고 확신하지만 어떻게 확신 할 수 없다. 미리 감사드립니다!아이폰 앱이 서로 다른 두 가지 뷰 중 하나를 표시하도록하기

답변

0

UINavigationController가 루트보기 컨트롤러와 함께 XIB 내에 정의되어있는 것처럼 들리지만 문제가 발생합니다. 이 경우, 앱 위임자 application:didFinishLaunchingWithOptions: 내에서 적절한보기를로드해야합니다. 거기에서 setViewControllers:animated:을 사용하여 UINavigationController의 첫 번째보기 컨트롤러를 설정할 수 있습니다.

0

이 문제를 해결했습니다.

내비게이션 컨트롤러에서 컨테이너보기를 작성하십시오.

그런 다음 조건에 따라 컨테이너에 넣을보기를 결정했습니다. 미리 두 가지 뷰를 만들었을 것입니다. 그런 다음보기를 컨테이너보기에 추가 할 수 있습니다. "Elements"샘플에는 컨테이너보기의 예제가 있다고 생각합니다.

1

앱 대리인에 다음 메소드를 구현하십시오.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    [window makeKeyAndVisible]; 
    if(condition) { 
     [window addSubview:[mainViewControllerA view]]; 
    } else { 
     [window addSubview:[mainViewControllerB view]]; 
    } 
} 

여기에서 조건에 따라로드 할보기를 선택할 수 있습니다.

+0

많은보기가있는보기 컨트롤러가 하나만있는 것이 문제입니다. – Chris

+0

UIViewController에서 이러한보기를 어떻게 관리합니까? 당신은 모든 뷰에 대해 속성을 만들 수 있으며, mainViewController.viewA, mainViewController.viewB 등으로 뷰에 접근 할 수 있습니다. – V1ru8

관련 문제