2015-06-12 6 views
1

Я пытаюсь перейти к другому ViewController (который является частью TabBarController) после того, как был выполнен какой-либо сетевой код (с использованием AlamoFire, внутри закрытия). Название моего текущего VC - StartVC. Я хочу перейти в другой VC после того, как мое закрытие подтвердило некоторый код. В моем примере код встречен, я на 100% уверен, потому что у меня есть println(), который указывает это так, но он не приводит меня к другому VC.Переход к другому ViewController в закрытии не работает в swift

Моего код закрытия заключается в следующем:

Alamofire.request(.POST, "http://localhost/test.php", parameters: dataToSend).responseJSON{ 
       (request, response, data, error) in 

self.showViewController(HomeViewController(), sender: nil) 

Я знаю, что мне нужно использовать self внутри крышки, чтобы обратиться к фактическим КАМ я работаю в Но код не работает..

Вы знаете, как представить/нажать/перейти к другому VC, используя код? Я не использую ссылки раскадровки на мой HomeViewController, потому что у меня были некоторые проблемы, прежде чем использовать segue как программно, так и в раскадровке, поэтому я решил пойти на кодовый подход.

Спасибо вам за помощью заранее

Ура!

ответ

0

Если вы не хотите, чтобы установить навигационный контроллер с раскадровки и не в состоянии начать с там, ваш AppDelegate должен быть как:

class AppDelegate: UIResponder, UIApplicationDelegate { 
//you must mark the window and navigationController variables as optional 
var window: UIWindow? 
var navigationController: UINavigationController? 

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { 

    navigationController = UINavigationController() 
    var homeViewController: UIViewController = UIViewController() 
    self.navigationController.pushViewController(homeViewController, animated: false) 

    self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 

    self.window.rootViewController = navigationController 

    self.window.backgroundColor = UIColor.whiteColor() 

    self.window.makeKeyAndVisible() 

    return true 
} 
} 

Кроме этого на вид контроллера вы можете нажать вид контроллер с раскадровки объекта как :

var firstViewController = self.storyboard!.instantiateViewControllerWithIdentifier("firstViewController") as! firstViewController 
self.navigationController?.pushViewController(firstViewController, animated: false); 

Present-контроллер:

let vc = ViewController() //change this to your class name 
self.presentViewController(vc, animated: true, completion: nil) 
+0

Джек, это полезно для вас? – Arvind

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