0

UISplitViewController으로 iPad 앱을 만들고 있습니다. masterViewController 자체에 modalViewController을 열려고합니다. 뷰 컨트롤러를 모달로드하면 전체 화면이 표시됩니다.masterViewController 안에 modalViewController를 표시하는 방법은 무엇입니까?

은 여기 새로운 viewController 모달

- (void)addNewContactButtonPressed:(id)sender { 
    AddOrEditContact *addContact = [self.storyboard instantiateViewControllerWithIdentifier:@"AddOrEditContact"]; 
    addContact.screenMode = addMode; 
    UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:addContact]; 
    [self.navigationController presentViewController:navigationController animated:YES completion:nil]; 
} 

내가 어떤 도움을 이해할 수있을 것 masterViewController. 내부 모달 새로운 viewController을로드 할 선물하는 내 masterViewController하는 .m에 내 코드입니다.

+0

왜 모달이 필요합니까? 당신은 그것을 밀어 낼 수 있습니다 (네비게이션 컨트롤러가있는 경우) 또는 팝업을 사용할 수 있습니다. –

+0

연락처를 마스터보기로 표시하고 있습니다. 새 연락처를 추가하거나 이전 연락처를 편집하고 싶습니다. 마스터보기에서 직접 수행하고 싶습니다. Bcoz 디자인은 그런 것입니다. –

답변

1

당신 만 masterViewController 통해 모달의 ViewController을 제시 할 수는 없지만이 masterViewController에 childView 컨트롤러를 추가 차 그것을

- (void)addiewControllerToHierarchy:(UIViewController *)viewController 
{ 
    [self addChildViewController:viewController]; 

    [self.view addSubview:frontViewController.view]; 

    if ([viewController respondsToSelector:@selector(didMoveToParentViewController:)]) 
    { 
     [viewController didMoveToParentViewController:self]; 
    } 
} 

을 제시하기 위해 자신 만의 애니메이션을 수행 할 수 있으며,

- (void)_removeViewControllerFromHierarchy:(UIViewController *)viewController 
{ 
    [viewController.view removeFromSuperview]; 

    if ([viewController respondsToSelector:@selector(removeFromParentViewController)]) 
    { 
     [viewController removeFromParentViewController];   
    } 
} 
을 제거하기 위해

이 예제에는 애니메이션이 없으므로 아마도 뷰의 프레임을 조정해야 할 것입니다.하지만 도움이 될 수 있기를 바랍니다.

+0

내가 이걸 해봅시다 .. –

+0

이게 당신에게 도움이되는지 알려주세요. – Manu

+0

그래, 그게 도움이 되었어.하지만 좀 더 좋은 대답을 기다리고있어. 내가 얻은 것이 없다면, 나는 너의 것을 받아 들일 것이다. –