在UIStoryboard实例化的UIViewController(Swift)中调用自定义函数

时间:2016-01-20 09:45:13

标签: ios swift uiviewcontroller storyboard xcode-storyboard

我认为我的问题最好通过首先概述我想要完成什么,然后给出我的实施,然后是我遇到的问题来表达。

目标

我正在尝试在iOS应用中创建一个配置文件页面,该页面可以从Storyboard中实例化,给定用户ID,然后从服务器获取所有元数据。

实施

在我的故事板中,我设计了Select AstNum from Files_master Order by parsename(replace(AstNum,'/','.'),2)*1 ASC,parsename(replace(AstNum,'/','.'),1)*1 ASC 并将ViewControllerImageViews等等与buttons相关联。用户(使用应用程序的人)主页由Storyboard实例化,但其余部分由代码推送。为了获取数据,我有一个函数@IBOutlets

现在,我遇到的问题是,#instantiateViewControllerWithIdentifier(String)会返回loadDataForID(ID: Int),我无法将其转发到UIViewController,以便调用数据提取功能。

所以,我的下一个想法是手动创建ProfileViewController,调用帮助函数,然后推送视图,但后来又遇到了另一个问题:因为所有视图都是ProfileViewController,这个控制器没有被Storyboard实例化,它们都是零引用。

由于我是iOS开发的新手,我几乎可以肯定有更好的方法来实现这一点,但我完全陷入困境;我不知道从哪里开始。有没有解决这些问题的方法,还是我应该以不同的方式做事?

1 个答案:

答案 0 :(得分:1)

您可以将instantiateViewControllerWithIdentifier(String)转换为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)