gpt4 book ai didi

ios - 如何将数据传递给从 UIStoryboard 实例化的 TableView Controller ?

转载 作者:行者123 更新时间:2023-11-28 13:09:26 24 4
gpt4 key购买 nike

我有一个 ViewController 和一个包含两个 TableViewController 的 UIScrollView。

    let allViewController = self.storyboard!.instantiateViewControllerWithIdentifier("ContentViewController") as! ContentViewController;
let favoritesViewController = self.storyboard!.instantiateViewControllerWithIdentifier("ContentViewController") as! ContentViewController;

在 scrollViewDidEndDecelerating 委托(delegate)中的某个时刻,我想将当前页面从 UIScrollView(1 或 2)发送到我的 ContentViewController:

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
let page = Int(scrollView.contentOffset.x / scrollView.frame.size.width)

// how to send page to ContentViewController
//delegate.pageChanged(page)
}

如果我不使用 prepareForSegue,如何实际将数据发送到 UITableViewController ?

我尝试的是向 ViewController 添加一个协议(protocol),但我无法在 ContentVieController 中初始化委托(delegate):

protocol PageChangedDelegate {
func pageChanged(page: Int)
}

var delegate: PageChangedDelegate!

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
let page = Int(scrollView.contentOffset.x / scrollView.frame.size.width)

delegate.pageChanged(page) // delegate is nil here
}

最佳答案

当你实例化一个 viewController 并且你正在向下转换时使用“as!”您现在可以访问该 View Controller 的变量,

假设您的内容 View Controller 有变量 A、B、C,您可以这样做

let allViewController = self.storyboard!.instantiateViewControllerWithIdentifier("ContentViewController") as! ContentViewController
allViewController.A = "Setting variable A on view controller"
allViewController.B = "hi"
allViewController.C = "the view controller now has its variables assigned"

关于ios - 如何将数据传递给从 UIStoryboard 实例化的 TableView Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31882994/

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