2014-10-11 8 views
0

Я разрабатываю приложение, которое имеет несколько видов. Как я могу перейти от одного viewController к другому. Я перехожу из «ViewController», который имеет доску истории, к «Question1ViewController», в которой есть xib-файл. Также код может быть в Objective-c (я все еще изучаю swift: =)) СпасибоПереход от UIViewController к другому

+1

Обычно вы создаете свою вторую сцену в той же раскадровке, что и ваш первый, и связываете их с segue. – Paulw11

ответ

1

Вы можете переходить между контроллерами зрения с помощью:

#import "Question1ViewController.h" 
//together with all the other imports 

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

Question1ViewController *vc = [[Question1ViewController alloc]initWithNibName:@"Question1ViewController" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:vc animated:YES]; 

Если у вас нет навигационного контроллера затем использовать:

Question1ViewController *vc = [[Question1ViewController alloc]initWithNibName:@"Question1ViewController" bundle:[NSBundle mainBundle]]; 
[self presentViewController:vc animated:YES completion:nil]; 
+0

Большое вам спасибо. В вашем коде была небольшая ошибка, вы пишете initWithNibName дважды, но спасибо за миллион за оставшуюся часть. – theCodeKing

+0

исправил его. благодаря –

3

Существует почти неограниченное количество способов сделать то, что вы просите.

Поскольку вы довольно новичок в этом вопросе, вероятно, было бы лучше, если бы вы использовали один способ описания ваших контроллеров представлений - Storyboards или xib-файлов, но не оба.

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

Прежде всего, вам нужно решить, какой переход вы хотите.

Проще всего, возможно, разместить контроллер навигации в своей раскадровке, а затем создать новый контроллер представления с вызовом initWithNibName:bundle:, а затем нажать его на контроллер навигации, используя прямые вызовы метода контроллера навигации pushViewController:animated:. (Вы не можете использовать раскадровку методы для вызова контроллеров отображения, которые не хранится в раскадровке.)

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