将数据从标签栏控制器传递到 swift 和 xcode 中的视图控制器
Posted
技术标签:
【中文标题】将数据从标签栏控制器传递到 swift 和 xcode 中的视图控制器【英文标题】:pass data from tabbar controller to view controller in swift and xcode 【发布时间】:2018-08-26 19:04:36 【问题描述】:我想将数据从视图控制器传递到标签栏控制器,然后使用它们的类从这个标签栏控制器到它的视图控制器。我成功地使用 segue 从视图控制器转移到标签栏控制器。但是,我无法将数据从标签栏控制器传输到其视图控制器之一。
任何想法/文档将不胜感激。这是关于我想从 xcode 执行的操作的屏幕截图 screenshot-xcode
【问题讨论】:
【参考方案1】:查看标签栏控制器的documentation,尤其是viewControllers
属性。
该属性是UIViewController
s 的数组,按照它们在选项卡栏中出现的顺序排列,因此您可以选择您需要的(屏幕截图中的viewControllers[0]
),将其投射到您的特定视图控制器子类然后将您的数据传递给它。
【讨论】:
【参考方案2】:最后,我能够解决这个问题,非常感谢answer。下面是给像我这样的初学者的详细解释:
这是源控制器类,它是一个标签栏控制器,它传输数据:
class SourceTC: UITabBarController
var dataTransferFrom = "transfer this string"
override func viewDidLoad()
super.viewDidLoad()
let finalVC = self.viewControllers![0] as! DestinationVC //first view controller in the tabbar
finalVC.dataTransferTo = dataTransferFrom
这是目标控制器类,它是标签栏控制器下的视图控制器,它获取传输的数据:
class DestinationVC: UIViewController
var dataTransferTo = ""
override func viewDidLoad()
super.viewDidLoad()
print(dataTransferTo)
【讨论】:
以上是关于将数据从标签栏控制器传递到 swift 和 xcode 中的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 TableViewController 传递到 XIB 文件而不使用 Segues-Swift 3
为啥我不能在 Swift 中使用从一个 UIViewController 传递到另一个(在控制台中打印数据)的数据设置标签?