У меня есть два класса ViewController.Инициализация данных после получения от другого ViewController
Первый - HarachieRolliController. Второй - DetailTovarProsmotr
Я создал его в MainStoryboard файл в Xamarin прошивкой (C#)
После нажатия на button_arrow_product002:
1) Необходимо открыть DetailTovarProsmotr 2) Он должен передавать данные в DetailTovarProsmotr и отображать его в некоторых полях, например (titleproduct001), это строка.
Первый код класса:
partial class HarachieRolliController : UIViewController
{
public HarachieRolliController (IntPtr handle) : base (handle)
{
}
public async override void ViewDidLoad()
{
base.ViewDidLoad();
// Perform any additional setup after loading the view, typically from a nib.
string url2 = "http://papajohn.pp.ua/?mkapi=getProductsByCat&cat_id=83";
JsonValue json = await FetchAsync(url2);
ParseAndDisplay (json);
}
private async void ParseAndDisplay(JsonValue json)
{
String title = json[1]["post_title"].ToString();
button_arrow_product002.TouchUpInside += delegate {
Console.Out.WriteLine ("Clicked Button (button_arrow_product002)");
DetailTovarProsmotr myvarible = new DetailTovarProsmotr (title);
};
}
}
}
Второй код класс:
public partial class DetailTovarProsmotr : UIViewController
{
public string mytitle;
public DetailTovarProsmotr (IntPtr handle) : base (handle)
{
}
public DetailTovarProsmotr(String title){
this.mytitle = title;
Console.Out.WriteLine ("Constructor DetailTovarProsmotr is run");
Console.Out.WriteLine (mytitle+" Console.Out.WriteLine (mytitle)");
HendlerButtonClicked (mytitle);
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
Console.Out.WriteLine (mytitle+" ViewDidLoad metod is run");
}
public void HendlerButtonClicked(String title){
Console.Out.WriteLine (title+" HendlerButtonClicked metod is run");
titleproduct001.Text = title;
}
}
В классах и методах я консоль отображающей, чтобы увидеть этапы работы в моем приложении. Журнал консоли:
ViewDidLoad Metod запускается
Нажал кнопку (button_arrow_product002)
Конструктор DetailTovarProsmotr запускается
"Горячий ролл с лососем и угрем" Console.Out. WriteLine (mytitle)
"Горяч й ролл с лососем и угрем "HendlerButtonClicked Metod запускается
Я думаю, что данные передаются позже, что ViewController начинают работать. И из-за этого titleproduct001.Text = title; не работает. У меня есть предупреждение. Gow Я могу это исправить?
Вы не можете использовать 'new DetailTovarProsmotr (...)', потому что этот UIViewController определен в StoryBoard. Когда вы его обновляете и пытаетесь использовать, класс не инициализируется правильно. Вам нужно использовать segue. Вы можете использовать метод PerformSegue UIViewController, чтобы вместо этого отобразить DetailTovarProsmotr. – dylansturg