Подтвердить что ты не робот

Как я могу переключать представления программным образом в контроллере представления? (Xcode, iPhone)

Некоторое время борется с этим и никогда не может получить прямой ответ.

Любая помощь приветствуется!

4b9b3361

Ответ 1

Если вы находитесь в контроллере навигации:

ViewController *viewController = [[ViewController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];

или просто хотите представить новое представление:

ViewController *viewController = [[ViewController alloc] init];    
[self presentViewController:viewController animated:YES completion:nil];

Ответ 2

Если вы хотите представить новый вид в той же раскадровке,

В CurrentViewController.m,

#import "YourViewController.h"

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
YourViewController *viewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifier"];
[self presentViewController:viewController animated:YES completion:nil];

Чтобы установить идентификатор контроллера вида, Откройте MainStoryBoard.storyboard. Выберите YourViewController View- > Утилиты → ShowIdentityInspector. Там вы можете указать идентификатор.

Ответ 3

instantiateViewControllerWithIdentifier - это Storyboard ID.

NextViewController *NVC = [self.storyboard instantiateViewControllerWithIdentifier:@"NextViewController"];
[self presentViewController:NVC animated:YES completion:nil];

Ответ 4

версия Swift:

Если вы находитесь в контроллере навигации:

let viewController: ViewController = self.storyboard?.instantiateViewControllerWithIdentifier("VC") as ViewController
self.navigationController?.pushViewController(viewController, animated: true)

Если вы просто хотите представить новое представление:

let viewController: ViewController = self.storyboard?.instantiateViewControllerWithIdentifier("VC") as ViewController
self.presentViewController(viewController, animated: true, completion: nil)

Ответ 5

Чтобы отклонить Viewcontroller, вызванный с кодом предыдущих ответов, CmdSft

    ViewController *viewController = [[ViewController alloc] init];    
    [self presentViewController:viewController animated:YES completion:nil];

вы можете использовать

    [self dismissViewControllerAnimated:YES completion: nil];

Ответ 6

#import "YourViewController.h"

Чтобы сделать вид, включая панель навигации и/или панель вкладок:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboard" bundle:nil];
YourViewController *viewController = (YourViewcontroller *)[storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifier"];
[self.navigationController pushViewController:viewController animated:YES];

Чтобы установить идентификатор в контроллер просмотра, откройте свою таблицу инвентаризации. Выберите ViewViewController View- > Утилиты → ShowIdentityInspector. Там вы можете указать идентификатор.

Ответ 7

Это сработало для меня:

NSTimer *switchTo = [NSTimer scheduledTimerWithTimeInterval:0.1
           target:selfselector:@selector(switchToTimer)userInfo:nil repeats:NO];

- (void) switchToTimer {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"MyViewControllerID"]; // Storyboard ID
[self presentViewController:vc animated:FALSE completion:nil];
}

Ответ 8

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

Ответ 9

версия Swift 3.0

если вы хотите представить новый контроллер.

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "controllerIdentifier") as! YourController
self.present(viewController, animated: true, completion: nil)

и если вы хотите нажать на другой контроллер (если он находится в навигации)

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "controllerIdentifier") as! YourController
self.navigationController?.pushViewController(viewController, animated: true)

Ответ 10

Swift 3.0 в

один контроллер просмотра для второго монитора управления:

let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MsgViewController") as! MsgViewController
        self.navigationController?.pushViewController(loginVC, animated: true)

2nd viewcontroller для 1-го контроля (назад) для: кнопки возврата на событие действия: -

self.navigationController?.popViewController(animated:true)

3rdviewcontroller до 1-го обзора просмотра для

self.navigationController?.popToRootViewController(animated:true)

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