我正在构建一个框架。我需要通过代码从UIViewcontroller获取IBOutels列表。我写了InterfaceOutletsReadable
协议。如果框架用户符合此协议,我必须从ViewController中读取IBOutlet列表。
protocol InterfaceOutletsReadable {
///Read the outlets objects
func readOutlets()
}
extension InterfaceOutletsReadable {
//TODO:- Stuck at this stage. Here I have to read the viewcontroller IBOutlets
}
class HomeViewController: InterfaceOutletsReadable {
@IBOutlet weak var userNameTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var errorLabel: UILabel!
}
修改:我不想从IBOutlet Collection获取列表。有没有办法以编程方式获得所有商店?
答案 0 :(得分:1)
你可以取IBOutletCollection
个textField
并连接到所有其他人。它维护出口阵列,你可以通过索引访问。
答案 1 :(得分:0)
@IBOutlets
仅在设计时存在,即使在编译时也没有。因此,按照您想要的方式获得所有商店是不可能的。奥特莱斯与其他变量没有区别。
如果您需要商家列表,可以在readOutlets()
中HomeViewController
实施return Array
,{
loader: 'css-loader',
options: {
modules: true,
localIdentName: '[path][name]__[local]--[hash:base64:5]',
getLocalIdent: (context, localIdentName, localName, options) => {
return localIdentName.replace(/^./, string[0].toUpperCase());
}
}
}
包含您想要的任何变量。