Метод запуска, когда вкладка Change Tab Controller (iOS) - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть приложение xamarin ios с панелью вкладок.

Когда я запускаю главную вкладку, я вызываю методы

Вот код главной вкладки

public partial class ExperienceTableViewController : UIViewController
{
    public ExperienceTableViewController (IntPtr handle) : base (handle)
    {

    }
    public override async void ViewDidLoad()
    {
        base.ViewDidLoad();
        List<GettingExperiences.Experience> tableItems =  new List<GettingExperiences.Experience>();
        tableItems.Clear();
        tableItems = await ExperienceMethods.GetExperiencesAsync();
        ExperienceTableView.Source = new ExperienceSource(tableItems, this, this.NavigationController);
        ExperienceTableView.RowHeight = UITableView.AutomaticDimension;
        ExperienceTableView.EstimatedRowHeight = 80f;
        ExperienceTableView.ReloadData();
    }
}

Когда я меняю фильтры на другой вкладке, мне нужно вернуться иповторите этот метод - tableItems = await ExperienceMethods.GetExperiencesAsync();

Я делаю перенаправление следующим образом

this.TabBarController.SelectedIndex = 0; из другой вкладки, но мой метод не перезапускается.

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

ViewDidLoad запускается только один раз, загружается первый раз.После следующего раза ViewWillAppear () будет выполнен ViewDidAppear ().Поскольку View уже есть в контроллере панели вкладок.

Так что, если ваш ViewController является частью панели вкладок, вы должны поместить свой всегда выполняющийся код в ViewWillAppear () и ViewDidAppear ().И код, который требуется выполнить только один раз, должен быть помещен в ViewDidLoad ().

0 голосов
/ 25 декабря 2018

Я нашел решение для этой проблемы

просто запустите метод в ViewDidAppear() или используйте события

...