我正在swift中尝试以下操作:
var storyboard = NSStoryboard.init(name: "Actors", bundle: nil)
这会产生错误:无法将类型为“String”的值转换为预期的参数类型“NSStoryboard. Name”根据类引用,NSStoryboard.Name应该是一个没有文件扩展名的字符串,这是我提供的。有什么不对吗?
NSStoryboard.Name
iaqfqrcu1#
NSStoryboard.Name在命名空间中有自己的作用域,以便能够执行此操作:第一个
zy1mlcev2#
这应该可以解决问题
var storyboard = NSStoryboard.init(name: NSStoryboard.Name(rawValue: "Actors"), bundle: nil)
bbuxkriu3#
enum Storyboards: String { case main = "Main" func instantiateVC<T>(_ identifier: T.Type) -> T? { let storyboard = NSStoryboard(name: rawValue, bundle: nil) guard let viewcontroller = storyboard.instantiateController(withIdentifier: String(describing: identifier)) as? T else { return nil} return viewcontroller } } //Usage let tabViewController = Storyboards.main.instantiateVC(IDTabViewController.self) window!.contentViewController = tabViewController
3条答案
按热度按时间iaqfqrcu1#
NSStoryboard.Name
在命名空间中有自己的作用域,以便能够执行此操作:第一个
zy1mlcev2#
这应该可以解决问题
bbuxkriu3#