viewcontroller с uinvaigationcontroller, когда всплывающее окно не показывает панель навигации

Я использую раскадровки с этим. На раскадровке у меня есть uiviewcontroller «главной страницы», у которого есть кнопка, которая при нажатии вызывает всплывающее окно другого uiviewcontroller (choosewinner). Но к этому Choosewinner vc подключен контроллер uinavigation, причина в том, что он может легко перемещаться вперед и назад. Теперь я могу вызвать uiview как модальное всплывающее окно, но оно не показывает его uinavigation.

Этот метод вызывается при нажатии кнопки. Мысли?

- (void)updateWinner{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    MatchWinnerViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"WinnerViewController"];

    vc.modalPresentationStyle = UIModalPresentationFormSheet;
    vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentViewController:vc animated:NO completion:nil];
    vc.view.superview.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
    vc.view.superview.bounds = CGRectMake(0, 0, 800, 600);
}



Ответы (1)


Несмотря на то, что у вас есть MatchWinnerViewController с прикрепленным к нему UINavigationController в раскадровке, если вы хотите представить его модально с UINavigationController, вам нужно указать навигационный контроллер в качестве параметра для метода instantiateViewControllerWithIdentifier.

Причина в том, что для модального представления он использует корневой контроллер представления, а контроллер навигации также является контроллером представления.

person Valent Richie    schedule 22.05.2013