IOS - Push viewController из кода и раскадровки

У меня есть этот код

 PlaceViewController *newView = [self.storyboard instantiateViewControllerWithIdentifier:@"PlaceView"];
 [self presentViewController:newView animated:YES completion:nil];

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

Я пытаюсь поместить этот код:

[self.navigationController pushViewController:newView animated:YES];

но ничего не делает.

Спасибо

Ответ 1

Objective-C:

PlaceViewController *newView = [self.storyboard instantiateViewControllerWithIdentifier:@"storyBoardIdentifier"];
[self.navigationController pushViewController:newView animated:YES];

Пожалуйста, обратите внимание ниже пунктов,

  1. Ваш раскадровочный идентификатор правильный.

  2. В корневом представлении есть навигационный контроллер.

Swift:

let newView = self.storyboard?.instantiateViewController(withIdentifier: "storyBoardIdentifier") as! PlaceViewController
self.navigationController?.pushViewController(newView, animated: true)

Ответ 2

Для раскадровки вы должны использовать performSegueWithIdentifier следующим образом:

 [self performSegueWithIdentifier:@"identifier goes here" sender:self];

Ответ 3

Использование:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"STORYBOARD_NAME" bundle:nil];
PlaceViewController *newView = [storyboard instantiateViewControllerWithIdentifier:@"PlaceView"];
[self presentViewController:newView animated:YES completion:nil];

Или:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"STORYBOARD_NAME" bundle:nil];
PlaceViewController *newView = [storyboard instantiateViewControllerWithIdentifier:@"PlaceView"];
[self.navigationController pushViewController:newView animated:YES];

Ответ 4

Swift 3.x

let viewController = storyboard?.instantiateViewController(withIdentifier: "storyboardIdentifier") as! UIViewController
navigationController?.pushViewController(viewController, animated: true)

Ответ 5

По умолчанию Xcode создает стандартный контроллер представления. мы сначала меняем контроллер вида на контроллер навигации. Выберите "Просто выберите" "Редактор" в меню и выберите "Вставить", затем "Контроллер навигации", Шаг 1. Выберите Главный сюжет Шаг 2. Нажмите "Редактор" поверх приложения Xcode. Шаг 3. Нажмите "Вставить"

Xcode автоматически вводит контроллер View с контроллером навигации.