相对而言,我是个初学者,所以这可能是一种完全常见的做法,或者是完全不可能的做法,但是我一直在想是否可以修改添加在故事板上的视图控制器,以便代替(或除此之外) to?)是UIViewConroller
的实例,它也是(blahblah)ViewController
的实例,例如ABUnknownPersonViewController
。
这样,而不是做这样的事情:
class ViewController : UIViewController {
override func viewDidLoad() {
let test = ABUnknownPersonViewController()
...
self.presentViewController(test, animated: false, completion: nil)
}
}
可以这样做:
class ViewController : ABUnknownPersonViewController {
override func viewDidLoad() {
//ViewController already is an ABUnknownPersonViewController, so you can treat it as one
//example below (displayedPerson is a property of ABUnkownPersonViewControllers)
self.displayedPerson...
}
}
编辑:
ABUnknownPersonViewController
是Apple提供的类,它不是而不是支持子类(here)。如此说来,并且我显然希望尽可能简单的解决方案(避免使用协议或其他),我有什么选择?我尝试
class FourthViewController: UIViewController, ABUnknownPersonViewController, ABUnknownPersonViewController, ABUnknownPersonViewControllerDelegate
只是为了获得有关多重继承的错误。 最佳答案
听起来您实际上想要做的是子类化UIViewController,然后在情节提要中将自定义类设置为子类。从情节提要中加载视图控制器时,它将是您的子类的实例。
因此,您的子类如下所示:
class ABUnknownPersonViewController : UIViewController {
override func viewDidLoad() {
self.displayedPerson...
}
}
在情节提要中,突出显示要用于其自定义类的视图控制器,然后在“自定义类”字段中键入子类的名称。如果操作正确,它将自动为您完成。
关于ios - Swift:将View Controller的类型更改为UIViewController以外的其他类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31953424/