Xamarin iOS控制器依赖注入的自定义继承问题

时间:2013-08-28 21:17:56

标签: c# ios inheritance xamarin.ios xamarin

我遇到了一个从基类继承的控制器的故障。我的基础看起来像:

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编译有关,但有没有解决方法?

感谢。

1 个答案:

答案 0 :(得分:5)

请勿在构造函数中触摸Controller的View属性,因为这会触发ViewDidLoad。