【发布时间】:2017-04-24 11:10:38
【问题描述】:
我已经尝试以多种方式将数据从我的 unwind segue 向后传递。似乎数据没有被发送或在 viewDidLoad() 之后被发送,所以我试图设置的标签没有得到更新。 unwind segue 正在工作,下面我使用 prepare for segue 成功地将前一个视图控制器的标题更改为“新标题”,但最后一行没有将 nbaRotoHome.player 设置为“新玩家名称”。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "BuyStatsTapPager" {
let nav = segue.destination as! UINavigationController
let buyStatsTapPager = nav.viewControllers[0] as! BuyStatsTabPager
buyStatsTapPager.selectedPlayerBuyStats = selectedPlayer
buyStatsTapPager.buyStatsRef = self
}
if segue.identifier == "unwindToViewController1" {
var viewControllers: [UIViewController] = mainNavigationController.viewControllers as [UIViewController];
if(viewControllers.count == 3){
viewControllers.remove(at: viewControllers.count-2)
mainNavigationController?.viewControllers = viewControllers
}
let enteredContestViewController = viewControllers[viewControllers.count-1]
enteredContestViewController.title = "new title"
self.presentingViewController?.dismiss(animated: true, completion: nil)
let nbaRotoHome = segue.destination as! NBARotoHome
nbaRotoHome.player = "new player name"
}
回到我以前的视图控制器我有
@IBAction func prepareForUnwind(segue: UIStoryboardSegue) {
}
看了这个问题之后 Passing data with unwind segue 我也试过在以前的视图控制器中以这种方式获取数据
@IBAction func prepareForUnwind(segue: UIStoryboardSegue) {
if let sourceViewController = segue as? BuyStats {
playerNameLabel.text = sourceViewController.playerName
}
}
如果我需要为我正在尝试做的事情添加更多细节,请询问,我会进行编辑。我想问这个问题,但我无法制定。
【问题讨论】:
标签: swift segue prepare unwind-segue