2016-02-05 4 views
0

В моем проекте у меня есть главный контроллер (к которому обращается один раз, у которого есть три наконечника. Эти наконечники не находятся на главной раскадровке Они отображаются только на главном экране, и я могу прокрутить просматривать их.Swift ViewController without prepareForSegue

Как получить из любого из этих наконечниками к ViewController, которые послали их?

Для ясности

  • ViewController1
    • переход к ViewController2
      • дисплей слайд крупка (ViewController3).

Я хочу получить от ViewController3 до ViewController1, но они не на раскадровке, так что я не могу нажать и перетащить и сделать SEGUE.

Надеюсь, это имеет смысл.

Edit: IBAction

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let secondVC = storyboard.instantiateViewControllerWithIdentifier("ViewController1StoryBoardID") as! ViewController1 
presentViewController(secondVC, animated: true, completion: nil) 

ViewController2 имеет это:

let vc3 = ViewController3(nibName: "ViewController3", bundle: nil) 
var frame3 = self.vc3.view.frame 
frame3.origin.x = self.view.frame.size.width * 2 
self.vc3.view.frame = frame3 
self.addChildViewController(self.vc3) 
self.scrollView.addSubview(self.vc3.view) 
self.vc3.didMoveToParentViewController(self) 

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

ответ

0

Вы можете создании экземпляра в ViewController через раскадровки ,

//instanciate storyboard  
let mainStoryBoard = UIStoryboard(name:"StoryboardName", bundle:nil) 

let myViewcontroller = mainStoryBoard.instanciateViewControllerWithIdentifier("viewcontrolleridentifier") as? ViewController1 

Вы можете установить идентификатор в Interface Builder

0
let viewController = YourViewController(nibName: "YourViewController", bundle: NSBundle.mainBundle()) 
self.navigationController?.pushViewController(viewController, animated: true) 
0

Существует понятие в прошивке из Navigation View Controller, который поможет вам сделать это в «профессиональном». Вы будете «складывать» взгляды и можете вернуться к любому из них, выровнять по экрану, просто щелкая.

Другой способ сделать это, движется по идентификатору зрения, Whithout явной Segue в раскадровке, проверьте This link для более подробной информации

0

Вам это нравится:

let storyboard = UIStoryboard(name: "StoryboardName", bundle: nil) 
let secondVC = storyboard.instantiateViewControllerWithIdentifier("anIdentifier") as! UIViewController 
presentViewController(secondVC, animated: true, completion: nil) 
  • " StoryboardName "- это название вашей раскадровки
  • " anIdentifier "является идентификатором вашего UIViewController, установленным в раскадровке

Пожалуйста, проверьте изображение, где установить раскадровку идентификатор ViewController:

enter image description here

+0

Это, выдает эту ошибку: Нагрузочное приложение из-за неперехваченное исключение «NSInvalidArgumentException», причина: «- [тест.ViewReportViewController returnToOriginal:]: непризнанный селектор, отправленный в экземпляр 0x7ba2f740 ' – JamesG

+0

Можете ли вы опубликовать свой фрагмент кода здесь, как вы делаете переход? – Lubos

+0

Да, дай мне несколько минут. – JamesG

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