Вам потребуется, чтобы контроллер корневого представления сначала отклонял всплывающее окно при нажатии кнопки в всплывающем окне, а затем вы можете представить новый вид из контроллера корневого представления.
Подробнее о том, каксделать увольнение поповера с помощью кнопки внутри попвера, см. мой предыдущий ответ «Как настроить представления поповера для правильного увольнения» .
Основная идея:
Чтобы вручную закрыть поповер, вам нужно сохранить ссылку на него.Хорошее место было бы в контроллере представления, который показывает popover.
Чтобы кнопка внутри контроллера представления контента говорила оригинальному контроллеру представления (который представил popover), чтобы отклонить popover, два возможных способаявляются делегатом + протокол или NSNotificationCenter.
В этом предыдущем ответе PresenterViewController является вашим корневым контроллером представления (тот, который представляет поповер).
Разница в вашем случаебудет в методе contentFooViewControllerDone (который вы бы поместили в свой контроллер корневого представления):
- (void)contentFooViewControllerDone:(NSNotification *)notification
{
// Button in content view controller was tapped, dismiss popover...
[self.popoverController dismissPopoverAnimated:YES];
// Load new view here...
// Note: If intending to use presentModalViewController
// (instead of addSubView), you might need to set animated to NO
// for above popover dismissal (otherwise presentModal will do nothing)
// or use performSelector:withObject:afterDelay to present new
// view controller to animate both dismiss and present.
}