iOS Перейти к другому представлению - PullRequest
3 голосов
/ 07 октября 2010

У меня есть приложение на основе навигации. Корневое представление представляет собой список элементов. В этом корневом представлении вы можете нажать на ячейку таблицы, чтобы перейти к подробному виду элемента. Или вы можете перейти в представление формы, чтобы создать новый элемент с помощью кнопки «Добавить» на панели навигации.

Мой вопрос заключается в том, как я могу перейти от представления формы к подробному виду после создания нового объекта?

Я не хочу помещать подробный вид поверх представления формы, потому что я хочу, чтобы представление корневой таблицы было тем, что видит пользователь после нажатия кнопки навигации «назад» из подробного представления.

Я пробовал следующее. Он нормально отображается в корневом представлении, но после этого не отображает подробный вид ..

[context save:&error];

[self.navigationController popToRootViewControllerAnimated:NO];

// display detail view
GoalDetailViewController *detailViewController = [[GoalDetailViewController alloc] initWithNibName:@"GoalDetailViewController" bundle:nil];

// Pass the selected object to the new view controller.
detailViewController.goal = goal;

[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];

Любая помощь и направление будет высоко ценится:)

Ура!

Ответы [ 2 ]

3 голосов
/ 07 октября 2010

Как правило, вы реализуете кнопку добавления, используя контроллер представления, отображаемый модально.

[self presentModalViewController:modalViewController animated:YES];

означает, что это появляется в нижней части экрана (см. Добавление контакта). Затем, когда они нажимают «Готово» в правом верхнем углу, вы можете нажать контроллер подробного вида на навигационном контроллере, не анимируя его, заставив кнопку «Назад» вернуться к исходному представлению списка.

1 голос
/ 07 октября 2010

Это не то, что вы часто видите в приложениях, но это может быть выполнено так:

// Get the current view controller stack.
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];

// Instantiate your new detail view controller
GoalDetailViewController *detailViewController = [[GoalDetailViewController alloc] initWithNibName:@"GoalDetailViewController" bundle:nil];
detailViewController.goal = goal;

// Remove the topmost view controller from the stack
[viewControllers removeLastObject];
// Replace it with the new detail view controller
[viewControllers addObject:detailViewController];

// Change the view controller stack
[self.navigationController setViewControllers:viewControllers animated:YES];

// Clean up
[detailViewController release];

Какую именно анимацию вы описываете здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...