2015-04-30 2 views
0

Для этой проблемы контроллер представления, в котором выполняется этот код, находится в файле IB Login.storyboard. Контроллер представления, который я пытаюсь представить, находится в файле IB Main.storyboard. Код ниже - это то, что я использую для перехода от одного контроллера представления к другому.Представление функции контроллера вида, не называемой iOS Swift

func presentNextView() { 
    let mainSb: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let screenAfterLogin: UIViewController = mainSb.instantiateViewControllerWithIdentifier("MainContainerView") as! UIViewController 
    self.presentViewController(screenAfterLogin, animated: true, completion: nil) 
} 

Запуск приложения, я установил 3 точки останова на 3 строках, выполненных в функции currentNextView. Вызывается строка 1, вызывается строка 2, но строка 3 НЕ вызывается, а следующий экран не отображается. Что-то не так с xCode на данный момент?

заказ проекта на GitHub: https://github.com/joshuarcher/RecallBeta

Проблема заключается в файле "HardLoginViewController.swift"

+0

Просто чтобы sure..Do вы дали "MainContainerView" в качестве видеоряда идентификатора в инспектор окна раскадровки. –

+0

Да, это объявлено как раскадровка ID –

ответ

0
func presentNextView() { 

    let mainSb: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let screenAfterLogin: SecondVC = mainSb.instantiateViewControllerWithIdentifier("SecondVC") as SecondVC 
    let navigationController = UINavigationController(rootViewController: screenAfterLogin) 
    presentViewController(navigationController, animated: true, completion: nil) 
} 
+0

Зачем внедрять его в контроллер навигации? –

+0

Кроме того, теперь строка «let navigationController ...» не называется –

+0

получает что-то вроде этого «вид не в иерархии окон!» –

0
class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     presentNextView() 
    } 

    func presentNextView() { 
     let mainSb: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 

     let screenAfterLogin: SecondVC = mainSb.instantiateViewControllerWithIdentifier("SecondVC") as SecondVC 
     let navigationController = UINavigationController(rootViewController: screenAfterLogin) 
     presentViewController(navigationController, animated: true, completion: nil) 
    } 
} 


import UIKit 

class SecondVC: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
     self.title="Second Screen" 
    } 
} 
Смежные вопросы