我是新来的斯威夫特。
在目标C中,我推送自定义uiviewcontroller从其类名创建:

NSString *classString = "customViewController";
UIViewController *vc = [[NSClassFromString(classString) alloc] init];
[self pushViewController:vc animated:YES];

我不能用swift创建类,这不起作用:
let myClass = NSClassFromString("customViewController") as! UIViewController.Type
let vc = myClass.init()
self.presentViewController(vc, animated: true, completion: nil)

错误:致命错误:解包时意外发现nil
可选值

最佳答案

失败的原因是您引用的视图控制器类名(customViewController)没有完全由模块名限定。这可以在自定义类名下面的接口生成器中找到:
swift - 从类名创建一个swift类-LMLPHP
您应该更改类名字符串以表示视图控制器的完全限定名,例如:

let myClass = NSClassFromString("MyProject.customViewController") as! UIViewController.Type

关于swift - 从类名创建一个swift类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33100021/

10-12 16:18