我遇到了一个从基类继承的控制器的故障。我的基础看起来像:
public abstract class BaseUIViewController : UIViewController
{
public BaseUIViewController() : base() { }
public BaseUIViewController(..) : base(..) { }
}
我的控制器继承自此,并定义了一个构造函数,如:
public class MyController : BaseUIViewController
{
public MyController(ISOmeService service, IOtherService service)
{
..
}
override ViewDidLoad(..) { .. }
}
TinyIOC创建conntroller的实例并提供构造函数服务。出于某种原因,当我这样做时,ViewDidLoad在构造函数之前运行。当我删除基类定义时,它没有任何问题。
知道基类导致问题的原因吗?我可以逻辑地假设它与objective-c编译有关,但有没有解决方法?
感谢。
答案 0 :(得分:5)
请勿在构造函数中触摸Controller的View属性,因为这会触发ViewDidLoad。