2

У меня есть экран меню, который реализует UINavigationController и на верхней части этого экрана, используя presentModalViewController, я помещаю еще один экран, на котором я хочу иметь другую UINavigationController. Я попытался реализовать еще один контроллер навигации, чтобы обрабатывать новый экран, но я либо получаю навигационную панель 1/8th вниз по экрану, и он падает, или вообще ничего. Я пробовал [[UINavigationController alloc] initWithRootViewController:navigationConroller] и не имел успеха. Я просто использую pushViewController, чтобы попытаться поместить следующий наконечник в стек, который не работает. Что я делаю не так?UINavigationController с presentModalViewController

+0

У вас пока нет ответов, пока вы не разместите свой код, чтобы показать, что вы делаете. – coneybeare

ответ

10

Хотя есть много людей, говорящих на форумах, что Apple не позволяет это, я получил его на работу. Что вам нужно сделать следующее:

Map *mapScreen = [[[Map alloc] init] autorelease]; 
mapScreen.delegate = self; 

UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:mapScreen] autorelease]; 

[self presentModalViewController:navController animated:YES]; 
+0

Это метод, который я использую также, UINavigationController - это просто подкласс UIViewController, и вы можете делать с ним все то же самое, что и с UIViewController. –

+0

Это метод, который Apple описывает в Руководстве по программированию контроллера просмотра для iOS: Modal View Controllers. Возможно, люди комментировали ваше ненужное использование авторекламы. Когда вы используете presentModalViewController: mapScreen и navController сохраняются самим собой, и к ним можно получить доступ через self.modalViewController, чтобы вы могли и должны немедленно отпустить оба. –

+0

А? его просто пример, я не использую autorelease нормально, но просто для простого примера, который я ставлю здесь как autorelease, означает, что люди знают, что он должен быть выпущен. Это тоже очень старый, и большинство форумов в то время говорили, что вы не можете этого сделать, следовательно, первое утверждение в ответе. – Rudiger

Смежные вопросы