Ios 在UIStoryboard实例化UIViewController(Swift)内调用自定义函数
我认为我的问题最好的表达方式是首先给出我试图实现的目标的概要,然后给出我的实现,然后是我遇到的问题 目标 我正在尝试在iOS应用程序中创建一个配置文件页面,该页面可以在给定用户ID的情况下从故事板实例化,然后从服务器获取所有元数据 实施 在我的故事板中,我设计了Ios 在UIStoryboard实例化UIViewController(Swift)内调用自定义函数,ios,swift,uiviewcontroller,storyboard,xcode-storyboard,Ios,Swift,Uiviewcontroller,Storyboard,Xcode Storyboard,我认为我的问题最好的表达方式是首先给出我试图实现的目标的概要,然后给出我的实现,然后是我遇到的问题 目标 我正在尝试在iOS应用程序中创建一个配置文件页面,该页面可以在给定用户ID的情况下从故事板实例化,然后从服务器获取所有元数据 实施 在我的故事板中,我设计了视图控制器,并将图像视图、按钮等链接为@IBOutlets。用户(使用应用程序的人)的主页由故事板实例化,但其余的由代码推送。为了获取数据,我有一个函数loadDataForID(ID:Int) 现在,我遇到的问题是返回一个UIViewC
视图控制器
,并将图像视图
、按钮
等链接为@IBOutlets
。用户(使用应用程序的人)的主页由故事板实例化,但其余的由代码推送。为了获取数据,我有一个函数loadDataForID(ID:Int)
现在,我遇到的问题是返回一个UIViewController
,我无法向上转换到我的ProfileViewController
,以便调用数据获取函数
因此,我的下一个想法是手动创建ProfileViewController
,调用helper函数,然后推送视图,但随后我遇到了另一个问题:因为所有视图都是@IBOutlets
,并且这个控制器不是由情节提要实例化的,所以它们都是零引用
由于我是iOS开发新手,我几乎可以肯定有更好的方法来实现这一点,但我完全被卡住了;我不知道从这里到哪里去。有没有办法解决这些问题,或者我应该用另一种方法来处理这些问题?您可以将
实例化控件的标识符(字符串)
转换为ProfileViewController
,如下代码所示:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let profileVC = storyboard.instantiateViewControllerWithIdentifier("ProfileViewControllerID") as! ProfileViewController
//Now you can access property of ProfileViewController here
self.presentViewController(profileVC, animated: true, completion: nil)
为什么不将您从InstanceViewController标识符中获得的视图控制器向下转换为ProfileViewController?例如
let vc=storyboard?。实例化eviewcontrollerwhithidentifier(“ID”)为!ProfileViewController
Wow。这绝对令人尴尬。我以前试过这个,但我不小心在ProfileViewController之后,而不是它之前,出现了“!”。非常感谢。很高兴帮助你……)啊。它修复了无法调用helper函数的问题,但视图仍然为零。我该如何解决这个问题?你们能分享演示项目吗?你们让我走上了正确的方向,我相信我目前的问题与我问题的细节无关,所以我将给你们一个答案:向上投射。谢谢