在我的故事板中,我得到了:
UIView - > UITabBarController - > UINavigationController - > UITableView的
现在我想将一个对象从UIView传递到UITableview。我确实从准备segue func获取TabBarController的对象,但是从那里我有点迷路。
如何从TabBarController识别项目列表中的segue?
有人可以为UITabBar和Navigation控制器提供一些示例代码来传递数据吗?
答案 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的第一个标签。