我是新来的斯威夫特。
在目标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
)没有完全由模块名限定。这可以在自定义类名下面的接口生成器中找到:
您应该更改类名字符串以表示视图控制器的完全限定名,例如:
let myClass = NSClassFromString("MyProject.customViewController") as! UIViewController.Type
关于swift - 从类名创建一个swift类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33100021/