我有UIViewController
看起来有点像这样:
class ProfileViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, ... {
...
convenience init(name: String) {
print("Init with student: \(name)")
self.init()
}
...
}
我有一个相应的Storyboard布局,嵌入在UINavigationViewController中,链接到UITabBarController。这似乎是设计布局的最简单方法,并且非常适用于只需要此VC的一个实例(这是应用程序最初设计的方式)。
我现在想要从这个单一设计(1到3之间)创建多个标签,并以编程方式传递VC初始化信息,但我不确定这样做的最佳方法 - 正如您在上面所看到的基于我已经完成的一些阅读,我添加了一个方便初始化函数,因为这似乎是一个好的开始。
根据故事板布局创建新的命名选项卡很简单,如下所示:
for user in (users)! {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "profileNC")
controller.tabBarItem.title = user.name
newTabs?.insert(controller, at: 0)
}
self.viewControllers = newTabs
但是,这样做我不会调用init函数来传递UIViewController
正确显示所需的信息。
如何创建ViewControllers,将布局链接到Storyboard并使用自定义init函数?这甚至可能吗?
感谢任何建议!!
答案 0 :(得分:3)
使用情节提要时,您无法使用自定义初始化程序。您需要直接设置属性,或者在创建视图控制器实例后使用配置功能。