gpt4 book ai didi

ios - 使用标签和 PerformSegueWithIdentifier 通过 tabBar DidSelectItem 传递数据

转载 作者:行者123 更新时间:2023-11-28 15:48:18 25 4
gpt4 key购买 nike

我使用的 swift 3 有一个 taBbar,当我选择一个 tabBarItem 时,将以编程方式调用 segue 以转到新的 View Controller 。我还需要通过这个 segue 传递一些数据。

我的代码(对于标签栏 didSelectItem):

 func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
if item.tag == 0 {
self.performSegueWithIdentifier("nearbyHotelsSegue", sender: nil)
} else if item.tag == 1 {
self.performSegueWithIdentifier( "nearbyRestaurantsSegue", sender: nil)
} else if item.tag == 2 {
self.performSegueWithIdentifier( "nearbyEventsSegue", sender: nil)
} else if item.tag == 3 {
self.performSegueWithIdentifier( "morePlacesSegue", sender: nil)
}
}

根据我目前的研究,我知道可以为此使用 PrepareForSegue,但我不能在 tabBar (didSelectItem) 方法中使用它。如何使用 tabbar didSelectitem 方法传递数据,或者有没有其他好的方法来实现这一点?谢谢。

最佳答案

prepareForSegue 方法被用作重写方法,因此您应该在 tabBar 函数的范围之外使用它。当您调用 performSegue(withIdentifier: "segueName", sender: nil) 时,您已在 sender 中提供了 nilSenderAny? 类型的参数,您可以在其中放置要传递给另一个 Controller 的自定义数据。在 prepare(forSegue: UIStoryboardSegue, sender: Any?) 中,当您将目标 View Controller 转换为您要使用的 View Controller 时,将发送者数据传递给该 Controller ,例如:

override func prepare(forSegue: UIStoryboardSegue, sender: Any?) {
if let controller = segue.destination as? YourDestinationViewController {
controller.receivedData = sender
}
}

关于ios - 使用标签和 PerformSegueWithIdentifier 通过 tabBar DidSelectItem 传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42665288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com