【发布时间】:2016-01-20 09:45:12
【问题描述】:
我认为最能表达我的问题的方法是首先概述我要完成的工作,然后给出我的实施,然后是我遇到的问题。
目标
我正在尝试在我的 iOS 应用程序中创建一个配置文件页面,该页面可以从 Storyboard 实例化,给定用户 ID,然后从服务器获取所有元数据。
实施
在我的故事板中,我设计了ViewController 并将ImageViews、buttons 等链接为@IBOutlets。用户(使用应用程序的人)的主页由 Storyboard 实例化,但其余部分由代码推送。为了抓取数据,我有一个函数loadDataForID(ID: Int)
现在,我遇到的问题是 #instantiateViewControllerWithIdentifier(String) 返回一个 UIViewController,我无法将其上载到我的 ProfileViewController,以便调用数据获取函数。
所以,我的下一个想法是手动创建ProfileViewController,调用辅助函数然后推送视图,但后来我遇到了另一个问题:因为所有视图都是@IBOutlets,而这个控制器不是由 Storyboard 实例化,它们都是 nil 引用。
由于我是 iOS 开发的新手,我几乎可以肯定有更好的方法来实现这一点,但我完全陷入了困境;我不知道从这里去哪里。有没有办法解决这些问题,还是我应该以不同的方式做事?
【问题讨论】:
-
你为什么不把你从instantiateViewControllerWithIdentifier 得到的视图控制器向下转换到ProfileViewController 呢?比如
let vc = storyboard?.instantiateViewControllerWithIdentifier("ID") as! ProfileViewController
标签: ios swift uiviewcontroller storyboard xcode-storyboard