ann*_*a.O 6 uitabbarcontroller uiviewcontroller ios swift
我有几个问题.如何将数据(我在Alamofire请求完成后得到的)传递给TabBarController的一个子节点?
我遇到的第一个问题是我无法覆盖登录操作中的func prepareForSegue(当点击按钮时),它说我只能覆盖类成员.但是,如果我把功能放在IBAction之外,那么我将不会发送我需要的数据.
第二个问题是,当我将覆盖的函数放在IBAction之外时,代码看起来像这样:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let homeVC = segue.destinationViewController as HomeViewController
homeVC.templateForCell = templates
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到了错误:
无法将'UITabBarController'类型的值转换为HomeViewController'
(HomeViewController是我的目标视图,我应该从Alamofire传递数据).
nig*_*ker 12
您不一定需要使用prepareForSegue.只需在TabBarController viewControllers数组中引用所需的ViewController并将其强制转换.
let vc = self.tabBarController.viewControllers![1] as! HomeViewController
vc.templateForCell = templates
Run Code Online (Sandbox Code Playgroud)
如果TabBar中的ViewControllers嵌入在导航控制器中,则可以执行以下操作:
let navController = self.tabBarController.viewControllers![1] as! UINavigationController
let vc = navController.topViewController as! HomeViewController
vc.templateForCell = templates
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8094 次 |
| 最近记录: |