mercredi 6 juillet 2016

InstantiateViewController calls ViewDidLoad

I have a classic master-detail logic and trying to create instance of detail UIViewController with InstantiateViewController inside a click event.

Here is my code,

MasterViewController.cs

detailButton += delegate {
   UIStoryboard Storyboard = UIStoryboard.FromName ("Main", null);
   Console.WriteLine("InstantiateViewController() started");
   var profileController = Storyboard.InstantiateViewController("ProfileController") as ProfileController; 
   Console.WriteLine("InstantiateViewController() ended");
   profileController.Id = 5;  
};

ProfileViewController.cs

public partial class ProfileController : UIViewController
{
    public int Id { get; set; }
    public override void ViewDidLoad() 
    { 
        Console.WriteLine("ViewDidLoad() called");
    }
}

When I click the button output is,

InstantiateViewController() started
ViewDidLoad() called
InstantiateViewController() ended

This means profileController.Id is set after ViewDidLoad() which means I can't load data by Id in ViewDidload event beacuse Id is null.

So my question is why ViewDidLoad() called by InstantiateViewController(), in which method should I load data by Id?

Thanks.

Aucun commentaire:

Enregistrer un commentaire