迅速; xcode 9.2 - 在TabBar&上传递参数。导航控制器

时间:2018-02-02 20:21:46

标签: ios swift

在我的故事板中,我得到了:

UIView - > UITabBarController - > UINavigationController - > UITableView的

现在我想将一个对象从UIView传递到UITableview。我确实从准备segue func获取TabBarController的对象,但是从那里我有点迷路。

如何从TabBarController识别项目列表中的segue?

有人可以为UITabBar和Navigation控制器提供一些示例代码来传递数据吗?

2 个答案:

答案 0 :(得分:0)

菲利普是对的。

您可以按照以下方式执行此操作:

class Model {
    static let shared = Model()

    var data: String // or anything else
}
在UIView中

Model.shared.data = "some data"
在UITableView中

let data = Model.shared.data
//do smth with data...

答案 1 :(得分:0)

Anton正在暗示Singleton模式。重要的是要了解当您决定使用它时它的好处和潜在的缺陷。 https://thatthinginswift.com/singletons/是一个开始阅读的地方。

有一些方法可以将对象从一个视图传递到另一个视图,这是有用的知识。 TabBarVC和NavigationVC都有viewControllers属性,允许您访问其子vc的数组。您可以使用它将信息传递给特定的子vc。根据您的需要,这可能比创建单身更合适。

例如:

let childVC = tabBarVC.viewControllers[0] as! MyCustomVCClass
childVC.inheretedObject = objectIWantToSend 

这会将一个对象传递给vc,该vc会弹出一个标签栏vc的第一个标签。