2017-04-19 39 views
0

我想用:使用tabbarViewController.selectedViewContreller沒有推next查看

self.tabBarController?.selectedViewController?.navigationController?.pushViewController(vc, animated: false) 

但這並沒有在斯威夫特工作。但是,如果我使用:

[self.tabBarController.selectedViewController pushViewController:nextVC animated:NO] 

in Objective-C。爲什麼?

+2

爲什麼不是你的銀行代碼與您的Objective-C代碼? – rmaddy

回答

0

在你的目標C例如tabBarController.selectedViewController被假定爲UINavigationController實例,它是可能的正確基於您的viewController層次。

但是,您的快速示例假定tabBarController.selectedViewController已嵌入與目標c版本不匹配的UINavigationController實例中。訪問navigationController將返回nil,因爲您要求導航控制器的父級navigationController(不存在)。

你迅速例如可以是固定的,像這樣

guard let navigationController = tabBarController.selectedViewController as? UINavigationController else { 
    return 
} 

navigationController.pushViewController(vc, animated: false) 
+0

謝謝!你的回答是正確的 – lzqok

1

試試這個

tabBarController?.selectedView?.pushViewController(nextVC, animated: false) 
+0

謝謝,但沒有工作。 – lzqok